❶ r语言是数据分析领域比较常用的工具,它具有什么特点
reshape2 横向、纵向做数据变换,例如把纵向堆叠在数据库中的证券行情数据转换成一个按照不同证券代码横向排列,按照时间纵向排列收盘价的数据表
stringr 方便地用正则表达式做批量字符串操作,可做检测、匹配、替换、计数等等
lubridate 方便地做日期/时间操作,各种标准化时间和时区的处理!
❷ 如何用r做趋势面分析
当趋势线的
R
平方值等于或近似于
1
时,趋势线最可靠。用趋势线拟合数据时,Excel
会自动计算其
R
平方值。如果需要,您可以在图表上显示该值。
R可以理解为相关系数,像一元线性回归预测方法里面也有这个R,相关系数是反映两个变量间是否存在相关关系,以及这种相关关系的密切程度的一个统计量。越接近1关系越密切,越接近0则不存在线性关系。
R的平方则反映多元线性回归的关系,同样越接近1越线性相关,公式有,这里显示不出来。希望能帮到您,O(∩_∩)O~
❸ 如何用R语言提取股票行情数据
最上边一行菜单栏倒数第二个“高级”-“关联任务定义”-选取最右边从上到下第二个按钮,找到2009年决算任务安装路径-确定。 然后 最上边一行菜单栏正数第二个“录入”-“上年数据提取”即可 提取完了,注意修改与去年不同的科目代码!
❹ 炒股中的R指标是什么意思在哪里看啊
(R)威廉指标是由LarryWilliams于1973年首创的,WMS表示的是市场处于超买还是超卖状态。WMS的计算公式是:n日WMS=(Hn-Ct)/(Hn-Ln)×100。Ct为当天的收盘价;Hn和Ln是最近n日内(包括当天)出现的最高价和最低价。WMS指标表示的涵义是当天的收盘价在过去的一段日子的全部价格范围内所处的相对位置。如果WMS的值比较大,则当天的价格处在相对较低的位置,要注意反弹;如果WMS的值比较小,则当天的价格处在相对较高的位置,要注意回落;WMS取值居中,在50左右,则价格上下的可能性都有。
有两个常用威廉指标,W&R威廉指标(William’s %R)和LWR威廉指标,它们与KD指标的分析思想相同。KD是相对价位指标,其数学表达式是“当前价位与分析区域中的最低价之差除以分析区域中的波动幅度”。而威廉指标的数学表达式是“分析区域中的最高价与当前价位之差除以分析区域中的波动幅度”。两个指标的不同点在数学公式的分子上。威廉指标与KD指标的数学关系如下:
威廉指标=1-KD指标
由于KD与威廉指标都是用百分比表示的,因此在波形上,威廉指标与KD指标的波形完全对称、上下颠倒。
一、WMS%R原理及计算
计算公式:
H-C
N日WMS%R=———×100%
H-L
式中:H——N日内的最高价;
L——N日内的最低价;
C——最后的收盘价。
从算式可看到两点:
①它是以N日内市场空方的力道(H - c)与多空总力道(H - L)之比率,以此研判市势。
②它是一个随机性很强的波动指标,本质上与KDJ理论中的未成熟随机指标RSV无异。
二、WMS%R的应用
1、0≤WMS%R≤100.由于WMS%R以研究空方力道为主,这与其它相似的振荡性指标以研究多方力道为主恰好相反,因此,WMS%R 80以上为超卖区,20以下为超买区。通常,为适应观察者的视觉感受,在图表的区间坐标上,将向下的方向处理为数值增大的方向。
2.由于其随机性强的缘故,若其进入超买区时,并不表示价格会马上回落,只要仍在其间波动,则仍为强势。当高出超买线(WMS%R=20)时,才发出卖出信号。
3.同上理,当低过超卖线(WMS%R=80)时,才发出买入信号。
4.WMS%R=50是多空平衡线,升破或跌破此线,是稳健投资者的买卖信号。
5.公式中N的取值通常有6、12、26、等,分别对应短期、中短期、中期的分析。
一、W&R威廉指标(William’s %R)
N:14
(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100
请对照一下《道升随笔:股票炒作手法与选股策略十六》文中的KD指标中的RSV,RSV的数学公式为:
N:9
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
除了分析周期N的大小不同外,它们之间数学表达有如下关系:
W&R威廉指标=1-“KD指标中的RSV”
请做个小实验,在W&R威廉指标中添加KD中的RSV表达式:
RSV:(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
那么修改后的W&R威廉指标中就有两条完全上下对称的曲线。
在《道升随笔:股票炒作手法与选股策略十六》中说过“如果9日内收盘价创新高,则RSV将变成100%,如果创新低将变成0。若直接使用RSV来描述相对位置,RSV很容易钝化。RSV曲线从低位到高位(或者从高位到低位)花时较短,花在钝化区的时间反而较长,并且曲线上有许多钝化的盲区。”正是由于9日的分析周期太短,威廉指标中才采取了较大的分析周期14。利用RSV曲线容易在100%和0%钝化的事实,可从中提前发现市场超买和超卖的特征。
超买状态:在分析周期中,如果股价创新高,进入了较高的风险区,股价随时可能回落,RSV曲线高位钝化,可看成进入了超买风险区,这时应该谨慎买入。
超卖状态:在分析周期中,如果股价创新低,进入了较低的风险区,股价随时可能反弹,RSV曲线低位钝化,可看成进入了超卖风险区,这时应该谨慎卖出。
W&R威廉指标主要用来说明超买和超卖状态。与KDJ相反,W&R威廉指标曲线超过80%说明是超卖,反之跌破20%是超买。
二、LWR威廉指标
数学表达式:
N:9
M1:3
M2:3
RSV:=(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N))*100;
LWR1:SMA(RSV,M1,1);
LWR2:SMA(LWR1,M2,1);
请比较下列的KD随机指标数学表达式:
N:9
M1:3
M2:3
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
比较结果:LWR威廉指标与KD指标的中数学模型是一样的,只是两公式中的RSV的分子不同。在分析软件中把这两个指标都显示出来,曲线完全对称,上下颠倒。
三、小结
1、 W&R威廉指标(William’s %R)主要用于提前观察超买和超卖现象,它的超买和超卖区域刚好与KDJ的超买和超卖区域相反。如果使用中感觉曲线反应太快,可增大分析周期。
2、 LWR威廉指标与KD指标的曲线完全对称,上下颠倒。可使用比较熟习的KDJ曲线或者KD曲线就行了。
在没有搞清指标的本质之前,要小心使用指标。有些指标之间的分析思想是一致的,只是微小的差别,可看成是同类指标。我们在分析问题时如果都采用同类指标来分析和判断市场,可能会太偏颇。只有采取不同类型的指标才能保证从不同的视角来看待问题。
威廉指标又称为威廉超买超卖指数,其作用在于从研究价位波幅出发,通过一段时间内的高低价位与收盘价之间的关系,反映市场的强弱和买卖气势。精髓在于通过研究价位变化中的波峰波谷,然后决定买卖时机。
威廉指标的计算公式为:R%=100-100(C-Ln)/(Hn-Ln)
其中:C(当日收盘价)、Ln(n日内最低价)、Hn(n日内最高价)
1、威廉指标是一个动态的动能指标,具有动能指标的摆动性能,它由一个极端摆动“超买点”到另外一个极端“超卖点”。从单摆的原理看,当单摆接近极端前,都有一个停顿,然后沿着原有趋势惯性向前,才会改变原有趋势。
2、从威廉指标的计算公式看,基期n值的数值选择非常关键。n值确立后,代表了研究周期的选定,n值越小,威廉指标波动频率越快,把握价格变化的灵敏度就越高,但据此操作投资者易陷入频繁操作的误圈,偶然因素的影响也会加大投资者对现有市场的判断出错;n值越大,威廉指标波动频率越慢,价格变化的灵敏度降低,偶然因素对价格趋势的影响降低。笔者对威廉指标作了5年的长期跟踪并结合时间之窗对价格趋势的影响,浅显认为威廉指标可按短、中、长选取参数,短期n值选10为宜,中期选20,长期选89。这样威廉指标在5分钟、15分钟、30分钟、60分钟、日线、周线、月线图上均表现为3条威廉指标线,分别代表了短、中、长的摆动趋势。
3、从威廉指标的计算公式看,在选定的基期n值范围内,当日收盘价与n日内最低价相等时,威廉指标达到100即“超卖点”极端,注意这时还不到买卖时机,它只代表买卖时机即将来临,这时还要考虑摆动惯性,在大幅下跌中,市场的收盘价可以连续创出收盘价新低,只有威廉指标的数值变化时才是最佳的“超卖点”极端买入时机,因此,当威廉指标达到或接近100即“超卖点”极端时,还要看下一个点的变化。在选定的基期n值范围内,当日收盘价与n日内最高价相等时,威廉指标达到0即“超买点”极端,注意这时还不到买卖时机,它只代表买卖时机即将来临,这时还要考虑摆动惯性,还要看下一个点的变化。日线看下一日,周线看下一周,依次类推。上述要点既包含了“涨时无顶、跌时无底”的股市常理,也包含了“逢低买入、逢高卖出”的思维方式。
4、威廉指标的数值位于0到100间,通常50为分隔的中界线,80-100为超卖线,20-0为超买线。从短、中、长3条威廉指标线看,当3条指标线重合并达到或接近100即“超卖点”极端或威廉指标达到或接近0即“超买点”极端时,其下一个威廉指标的数值变化时是投资者最应该关注的买卖时机。
❺ 股票数据分析方法
股票价格的涨跌,简单来说,供求决定价格,买的人多价格就涨,卖的人多价格就跌。做成买卖不平行的原因是多方面的,影响股市的政策面、基本面、技术面、资金面、消息面等,是利空还是利多,升多了会有所调整,跌多了也会出现反弹,这是不变的规律。
❻ 怎么分析股票数据
所需步骤:
1. 了解该公司。多花时间,弄清楚这间公司的经营状况。以下是一些获得资料的途径:
* 公司网站
* 财经网站和股票经纪提供的公司年度报告
* 图书馆
* 新闻报道——有关技术革新和其它方面的发展情况
2. 美好的前景。你是否认同这家公司日后会有上佳的表现?
3. 发展潜力、无形资产、实物资产和生产能力。这时,你必须象一个老板一样看待这些问题。该公司在这些方面表现如何?
* 发展潜力——新的产品、拓展计划、利润增长点?
* 无形资产——知识版权、专利、知名品牌?
* 实物资产——有价值的房地产、存货和设备?
* 生产能力——能否应用先进技术提高生产效率?
4. 比较。与竞争对手相比,该公司的经营策略、市场份额如何?
5. 财务状况。在报纸的金融版或者财经网站可以找到有关的信息。比较该公司和竞争对手的财务比率:
* 资产的账面价值
* 市盈率
* 净资产收益率
* 销售增长率
6. 观察股价走势图。公司的股价起伏不定还是稳步上扬?这是判断短线风险的工具。
7. 专业的分析。F10为个股资料,里面的业内点评清楚地评价了公司的行业地位及发展前景,可以作为参考,还有淘股吧论坛,里面不乏有高人分析个股的技术面与题材面。
技巧提示:
1、 潜在的行业龙头,要重点关注。比如中国南车,刚上市就跌到了3元,作为动车组的龙头股,肯定是低估了,中线持有必赚;
2、 低价是永恒的题材。这里所说的低价,是绝对低价,历史上从来没有大幅炒作过的品种,一旦有热门的题材引发主升,往往成为黑马。
注意事项:
每个投资者都经历过股票套牢的滋味。这时应该保持冷静,分析公司的基本面,确定该股票是否还值得长期持有。
❼ 如何用R语言提取股票行情数据
你好,关于股票价格有关的开盘价格,当日最高价格,当日最低价格,收盘价格,股票交易量;和调整后的价格;
DIA.Open 当日开盘价格
DIA.High 当日最高价格
DIA.Low 当日最低价格
DIA.Close 当日收盘价格
DIA.Volume 当日股票交易量
DIA.Adjusted 当日调整后的价格
❽ 如何用R 语言 建立 股票价格的时间序列
在下想用R语言对股票价格进行时间序列分析。
问题出在第一步,如何将股票价格转换为时间序列。
我想用的语句是 pri <- ts (data, start=(), frequency= )
但是我不知道frequency 项该如何填?
因为股票的交易日是一周五天的。 那么这个frequency 该如何设置呢?
我知道通常frequency= 12 为月度数据,frequency= 4 为季度数据,frequency= 1 为年度数据 但日数据怎么写我就不知道了
初学R语言,还望各位大侠多多帮助。
❾ 如何在r语言中抓取股票数据并分析论文
用quantomd包
然后getsymbols函数
分析论文 要看你研究方向
如果是看影响因素 一般回归就行
如果看股票波动和预测 可能需要时间序列
❿ 做数据分析必须学R语言的4个理由
做数据分析必须学R语言的4个理由
R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的前沿。R 已证明自己是不断成长的大数据领域的一个有用工具,并且已集成到多个商用包中,比如 IBM SPSS? 和 InfoSphere?,以及 Mathematica。
本文提供了一位统计学家Catherine Dalzell对 R 的价值的看法。
为什么选择 R?
R可以执行统计。您可以将它视为 SAS Analytics 等分析系统的竞争对手,更不用提 StatSoft STATISTICA 或 Minitab 等更简单的包。政府、企业和制药行业中许多专业统计学家和方法学家都将其全部职业生涯都投入到了 IBM SPSS 或 SAS 中,但却没有编写过一行 R 代码。所以从某种程度上讲,学习和使用 R 的决定事关企业文化和您希望如何工作。我在统计咨询实践中使用了多种工具,但我的大部分工作都是在 R 中完成的。以下这些示例给出了我使用 R 的原因:
R 是一种强大的脚本语言。我最近被要求分析一个范围研究的结果。研究人员检查了 1,600 篇研究论文,并依据多个条件对它们的内容进行编码,事实上,这些条件是大量具有多个选项和分叉的条件。它们的数据(曾经扁平化到一个 Microsoft? Excel? 电子表格上)包含 8,000 多列,其中大部分都是空的。研究人员希望统计不同类别和标题下的总数。R 是一种强大的脚本语言,能够访问类似 Perl 的正则表达式来处理文本。凌乱的数据需要一种编程语言资源,而且尽管 SAS 和 SPSS 提供了脚本语言来执行下拉菜单意外的任务,但 R 是作为一种编程语言编写的,所以是一种更适合该用途的工具。
R 走在时代的前沿。统计学中的许多新发展最初都是以 R 包的形式出现的,然后才被引入到商业平台中。我最近获得了一项对患者回忆的医疗研究的数据。对于每位患者,我们拥有医生建议的治疗项目数量,以及患者实际记住的项目数量。自然模型是贝塔—二项分布。这从上世纪 50 年代就已知道,但将该模型与感兴趣的变量相关联的估算过程是最近才出现的。像这样的数据通常由广义估计方程式 (general estimating equations, GEE) 处理,但 GEE 方法是渐进的,而且假设抽样范围很广。我想要一种具有贝塔—二项 R 的广义线性模型。一个最新的 R 包估算了这一模型:Ben Bolker 编写的 betabinom。而 SPSS 没有。
集成文档发布。 R 完美地集成了 LaTeX 文档发布系统,这意味着来自 R 的统计输出和图形可嵌入到可供发布的文档中。这不是所有人都用得上,但如果您希望便携异步关于数据分析的书籍,或者只是不希望将结果复制到文字处理文档,最短且最优雅的路径就是通过 R 和 LaTeX。
没有成本。作为一个小型企业的所有者,我很喜欢 R 的免费特定。即使对于更大的企业,知道您能够临时调入某个人并立即让他们坐在工作站旁使用一流的分析软件,也很不错。无需担忧预算。
R 是什么,它有何用途?
作为一种编程语言,R 与许多其他语言都很类似。任何编写过代码的人都会在 R 中找到很多熟悉的东西。R 的特殊性在于它支持的统计哲学。
一种统计学革命:S 和探索性数据分析
140 字符的解释:R 是 S 的一种开源实现,是一种用于数据分析和图形的编程环境。
计算机总是擅长计算 — 在您编写并调试了一个程序来执行您想要的算法后。但在上世纪 60 和 70 年代,计算机并不擅长信息的显示,尤其是图形。这些技术限制在结合统计理论中的趋势,意味着统计实践和统计学家的培训专注于模型构建和假设测试。一个人假定这样一个世界,研究人员在其中设定假设(常常是农业方面的),构建精心设计的实验(在一个农业站),填入模型,然后运行测试。一个基于电子表格、菜单驱动的程序(比如 SPSS 反映了这一方法)。事实上,SPSS 和 SAS Analytics 的第一个版本包含一些子例程,这些子例程可从一个(Fortran 或其他)程序调用来填入和测试一个模型工具箱中的一个模型。
在这个规范化和渗透理论的框架中,John Tukey 放入了探索性数据分析 (EDA) 的概念,这就像一个鹅卵石击中了玻璃屋顶。如今,很难想像没有使用箱线图(box plot) 来检查偏度和异常值就开始分析一个数据集的情形,或者没有针对一个分位点图检查某个线性模型残差的常态的情形。这些想法由 Tukey 提出,现在任何介绍性的统计课程都会介绍它们。但并不总是如此。
与其说 EDA 是一种理论,不如说它是一种方法。该方法离不开以下经验规则:
只要有可能,就应使用图形来识别感兴趣的功能。
分析是递增的。尝试以下这种模型;根据结果来填充另一个模型。
使用图形检查模型假设。标记存在异常值。
使用健全的方法来防止违背分布假设。
Tukey 的方法引发了一个新的图形方法和稳健估计的发展浪潮。它还启发了一个更适合探索性方法的新软件框架的开发。
S 语言是在贝尔实验室由 John Chambers 和同事开发的,被用作一个统计分析平台,尤其是 Tukey 排序。第一个版本(供贝尔实验室内部使用)于 1976 年开发,但直到 1988 年,它才形成了类似其当前形式的版本。在这时,该语言也可供贝尔实验室外部的用户使用。该语言的每个方面都符合数据分析的 “新模型”:
S 是一种在编程环境操作的解释语言。S 语法与 C 的语法很相似,但省去了困难的部分。S 负责执行内存管理和变量声明,举例而言,这样用户就无需编写或调试这些方面了。更低的编程开销使得用户可以在同一个数据集上快速执行大量分析。
从一开始,S 就考虑到了高级图形的创建,您可向任何打开的图形窗口添加功能。您可很容易地突出兴趣点,查询它们的值,使散点图变得更平滑,等等。
面向对象性是 1992 年添加到 S 中的。在一个编程语言中,对象构造数据和函数来满足用户的直觉。人类的思维始终是面向对象的,统计推理尤其如此。统计学家处理频率表、时间序列、矩阵、具有各种数据类型的电子表格、模型,等等。在每种情况下,原始数据都拥有属性和期望值:举例而言,一个时间序列包含观察值和时间点。而且对于每种数据类型,都应得到标准统计数据和平面图。对于时间序列,我可能绘制一个时间序列平面图和一个相关图;对于拟合模型,我可能绘制拟合值和残差。S 支持为所有这些概念创建对象,您可以根据需要创建更多的对象类。对象使得从问题的概念化到其代码的实现变得非常简单。
一种具有态度的语言:S、S-Plus 和假设测试
最初的 S 语言非常重视 Tukey 的 EDA,已达到只能 在 S 中执行 EDA 而不能执行其他任何操作的程度。这是一种具有态度的语言。举例而言,尽管 S 带来了一些有用的内部功能,但它缺乏您希望统计软件拥有的一些最明显的功能。没有函数来执行双抽样测试或任何类型的真实假设测试。但 Tukey 认为,假设测试有时正合适。
1988 年,位于西雅图的 Statistical Science 获得 S 的授权,并将该语言的一个增强版本(称为 S-Plus)移植到 DOS 以及以后的 Windows? 中。实际认识到客户想要什么后,Statistical Science 向 S-Plus 添加了经典统计学功能。添加执行方差分析 (ANOVA)、测试和其他模型的功能。对 S 的面向对象性而言,任何这类拟合模型的结果本身都是一个 S 对象。合适的函数调用都会提供假设测试的拟合值、残差和 p-值。模型对象甚至可以包含分析的中间计算步骤,比如一个设计矩阵的 QR 分解(其中 Q 是对角线,R 是右上角)。
有一个 R 包来完成该任务!还有一个开源社区
大约在与发布 S-Plus 相同的时间,新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 决定尝试编写一个解释器。他们选择了 S 语言作为其模型。该项目逐渐成形并获得了支持。它们将其命名为 R。
R 是 S 的一种实现,包含 S-Plus 开发的更多模型。有时候,发挥作用的是同一些人。R 是 GNU 许可下的一个开源项目。在此基础上,R 不断发展,主要通过添加包。R 包 是一个包含数据集、R 函数、文档和 C 或 Fortran 动态加载项的集合,可以一起安装并从 R 会话访问。R 包向 R 添加新功能,通过这些包,研究人员可在同行之间轻松地共享计算方法。一些包的范围有限,另一些包代表着整个统计学领域,还有一些包含最新的技术发展。事实上,统计学中的许多发展最初都是以 R 包形式出现的,然后才应用到商用软件中。
在撰写本文时,R 下载站点 CRAN 上已有 4,701 个 R 包。其中,单单那一天就添加了 6 个 R 。万事万物都有一个对应的 R 包,至少看起来是这样。
我在使用 R 时会发生什么?
备注:本文不是一部 R 教程。下面的示例仅试图让您了解 R 会话看起来是什么样的。
R 二进制文件可用于 Windows、Mac OS X 和多个 Linux? 发行版。源代码也可供人们自行编译。
在 Windows? 中,安装程序将 R 添加到开始菜单中。要在 Linux 中启动 R,可打开一个终端窗口并在提示符下键入 R。您应看到类似图 1 的画面。
图 1. R 工作区
在提示符下键入一个命令,R 就会响应。
此时,在真实的环境中,您可能会从一个外部数据文件将数据读入 R 对象中。R 可从各种不同格式的文件读取数据,但对于本示例,我使用的是来自 MASS 包的 michelson 数据。这个包附带了 Venables and Ripley 的标志性文本 Modern Applied Statistics with S-Plus(参见 参考资料)。michelson 包含来自测量光速的流行的 Michelson and Morley 实验的结果。
清单 1 中提供的命令可以加载 MASS 包,获取并查看 michelson 数据。图 2 显示了这些命令和来自 R 的响应。每一行包含一个 R 函数,它的参数放在方括号 ([]) 内。
清单 1. 启动一个 R 会话
2+2 # R can be a calculator. R responds, correctly, with 4.
library(“MASS”) # Loads into memory the functions and data sets from
# package MASS, that accompanies Modern Applied Statistics in S
data(michelson) # Copies the michelson data set into the workspace.
ls() # Lists the contents of the workspace. The michelson data is there.
head(michelson) # Displays the first few lines of this data set.
# Column Speed contains Michelson and Morleys estimates of the
# speed of light, less 299,000, in km/s.
# Michelson and Morley ran five experiments with 20 runs each.
# The data set contains indicator variables for experiment and run.
help(michelson) # Calls a help screen, which describes the data set.
图 2. 会话启动和 R 的响应
现在让我们看看该数据(参见 清单 2)。输出如 图 3 中所示。
清单 2. R 中的一个箱线图
# Basic boxplot
with(michelson, boxplot(Speed ~ Expt))
# I can add colour and labels. I can also save the results to an object.
michelson.bp = with(michelson, boxplot(Speed ~ Expt, xlab=”Experiment”, las=1,
ylab=”Speed of Light – 299,000 m/s”,
main=”Michelson-Morley Experiments”,
col=”slateblue1″))
# The current estimate of the speed of light, on this scale, is 734.5
# Add a horizontal line to highlight this value.
abline(h=734.5, lwd=2,col=”purple”) #Add modern speed of light
Michelson and Morley 似乎有计划地高估了光速。各个实验之间似乎也存在一定的不均匀性。
图 3. 绘制一个箱线图
在对分析感到满意后,我可以将所有命令保存到一个 R 函数中。参见清单 3。
清单 3. R 中的一个简单函数
MyExample = function(){
library(MASS)
data(michelson)
michelson.bw = with(michelson, boxplot(Speed ~ Expt, xlab=”Experiment”, las=1,
ylab=”Speed of Light – 299,000 m/s”, main=”Michelsen-Morley Experiments”,
col=”slateblue1″))
abline(h=734.5, lwd=2,col=”purple”)
}
这个简单示例演示了 R 的多个重要功能:
保存结果—boxplot() 函数返回一些有用的统计数据和一个图表,您可以通过类似 michelson.bp = … 的负值语句将这些结果保存到一个 R 对象中,并在需要时提取它们。任何赋值语句的结果都可在 R 会话的整个过程中获得,并且可以作为进一步分析的主题。boxplot 函数返回一个用于绘制箱线图的统计数据(中位数、四分位等)矩阵、每个箱线图中的项数,以及异常值(在 图 3 中的图表上显示为开口圆)。请参见图 4。
图 4. 来自 boxplot 函数的统计数据
公式语言— R(和 S)有一种紧凑的语言来表达统计模型。参数中的代码 Speed ~ Expt 告诉函数在每个 Expt (实验数字)级别上绘制 Speed 的箱线图。如果希望执行方差分析来测试各次实验中的速度是否存在显著差异,那么可以使用相同的公式:lm(Speed ~ Expt)。公式语言可表达丰富多样的统计模型,包括交叉和嵌套效应,以及固定和随机因素。
用户定义的 R 函数— 这是一种编程语言。
R 已进入 21 世纪
Tukey 的探索性数据分析方法已成为常规课程。我们在教授这种方法,而统计学家也在使用该方法。R 支持这种方法,这解释了它为什么仍然如此流行的原因。面向对象性还帮助 R 保持最新,因为新的数据来源需要新的数据结构来执行分析。InfoSphere? Streams 现在支持对与 John Chambers 所设想的不同的数据执行 R 分析。
R 与 InfoSphere Streams
InfoSphere Streams 是一个计算平台和集成开发环境,用于分析从数千个来源获得的高速数据。这些数据流的内容通常是非结构化或半结构化的。分析的目的是检测数据中不断变化的模式,基于快速变化的事件来指导决策。SPL(用于 InfoSphere Streams 的编程语言)通过一种范例来组织数据,反映了数据的动态性以及对快速分析和响应的需求。
我们已经距离用于经典统计分析的电子表格和常规平面文件很远,但 R 能够应付自如。从 3.1 版开始,SPL 应用程序可将数据传递给 R,从而利用 R 庞大的包库。InfoSphere Streams 对 R 的支持方式是,创建合适的 R 对象来接收 SPL 元组(SPL 中的基本数据结构)中包含的信息。InfoSphere Streams 数据因此可传递给 R 供进一步分析,并将结果传回到 SPL。
R 需要主流硬件吗?
我在一台运行 Crunchbang Linux 的宏碁上网本上运行了这个示例。R 不需要笨重的机器来执行中小规模的分析。20 年来,人们一直认为 R 之所以缓慢是因为它是一种解释性语言,而且它可以分析的数据大小受计算机内存的限制。这是真的,但这通常与现代机器毫无干系,除非应用程序非常大(大数据)。
R 的不足之处
公平地讲,R 也有一些事做不好或完全不会做。不是每个用户都适合使用 R:
R 不是一个数据仓库。在 R 中输入数据的最简单方式是,将数据输入到其他地方,然后将它导入到 R 中。人们已经努力地为 R 添加了一个电子表格前端,但它们还没流行起来。电子表格功能的缺乏不仅会影响数据输入,还会让以直观的方式检查 R 中的数据变得很困难,就像在 SPSS 或 Excel 中一样。
R 使普通的任务变得很困难。举例而言,在医疗研究中,您对数据做的第一件事就是计算所有变量的概括统计量,列出无响应的地方和缺少的数据。这在 SPSS 中只需 3 次单击即可完成,但 R 没有内置的函数来计算这些非常明显的信息,并以表格形式显示它。您可以非常轻松地编写一些代码,但有时您只是想指向要计算的信息并单击鼠标。
R 的学习曲线是非平凡的。初学者可打开一个菜单驱动的统计平台并在几分钟内获取结果。不是每个人都希望成为程序员,然后再成为一名分析家,而且或许不是每个人都需要这么做。
R 是开源的。R 社区很大、非常成熟并且很活跃,R 无疑属于比较成功的开源项目。前面已经提到过,R 的实现已有超过 20 年历史,S 语言的存在时间更长。这是一个久经考验的概念和久经考验的产品。但对于任何开源产品,可靠性都离不开透明性。我们信任它的代码,因为我们可自行检查它,而且其他人可以检查它并报告错误。这与自行执行基准测试并验证其软件的企业项目不同。而且对于更少使用的 R 包,您没有理由假设它们会实际生成正确的结果。
结束语
我是否需要学习 R?或许不需要;需要 是一个感情很强烈的词。但 R 是否是一个有价值的数据分析工具呢?当然是的。该语言专为反映统计学家的思考和工作方式而设计。R 巩固了良好的习惯和合理的分析。对我而言,它是适合我的工作的工具。