如何用Rstudio中的r语言quantmod包包随机产生三支股票数据?

使用 R 从 JSON 中的数据中获取有意义的统计方法
R 是一种强大的语言,可用于内存中统计计算和图形显示。它类似于 SAS、IBM SPSS® Statistics、MATLAB 或
FORTRAN,但它是开源的。有一些转换器可以很容易地将以 SAS、IBM SPSS Statistics 或 MATLAB 格式保存的数据移动到 R。此外,R
配备了通过 Comprehensive R Archive Network (CRAN) 提供的大量软件包。CRAN 提供了一些功能,这些功能类似于针对 Perl
语言的 CPAN,或者针对 Ruby 语言的 Rubygems.org。R 还集成了 InfoSphere BigInsights(参见 )。InfoSphere BigInsights 使用 JSON 格式来保存和显示数据,本文将介绍如何结合使用 JSON 与 R。JSON
是一个键值数据存储,可以直接映射到 JavaScript 对象。本文使用一组示例学生及其各自的考试成绩。设置开发环境首先,您需要设置开发环境。您需要使用 R,而且可以选择使用 RStudio
集成开发环境(IDE)。大多数软件包管理系统(apt、yum 等)默认情况下都提供了 R 版本
2.15,但是,如果想用最版的 R(在撰写本文时的最新版本是 3.0.2),则必须编辑您的可用数据源。例如,要在 Debian 中编辑可用数据源,可以打开文件 /etc/apt/sources.list,并添加以下代码行: deb http://favorite-cran-mirror/bin/linux/debian wheezy-cran3/用离您最近的镜像替换 favorite-cran-mirror。关于 CRAN 镜像的列表,请参见 。除了基于终端的 R 界面之外,您的 CRAN 镜像还为其他发行版本(比如 Red Hat Enterprise
Linux®、SuSE 和 Ubuntu 等)提供了指令。接下来,需要让 R 知道如何读取 JSON 数据。可以通过在 CRAN 上提供的 JSON for R (rjson) 软件包来读取数据。首先打开一个
R 终端。将软件包导入到本地 R 安装的语法是: install.packages("rjson")然后使其可用:library("rjson")您可以使用 CRAN 上提供的任何软件包的名称替换 rjson。在 rjson 中,最基本的命令是 fromJSON() 和 toJSON()。本文只打算探索
fromJSON(),因为在与现有数据交互时,它是最有用的方法,现有数据包括 InfoSphere BigInsights
创建或解析的数据。如果尚未下载示例文件 grades.json 并将其保存到一个可以访问的文件夹(参阅 ),请先完成这一步。然后,用以下命令将文件导入 R: grades=fromJSON(file = '/path_to_file/grades.json',
unexpected.escape = "error")用您的文件路径替换 path_to_file。标志 unexpected.escape 会告诉 rjson 如何处理意外的转义字符。该标志的选项是错误、保持和跳过。基本的 R 命令您可以在 R 中使用 help 函数了解关于任何给定命令的更多信息: help(name_of_command)或者,您可以使用下面的命令:?name_of_command用您想学习的命令的名称替换 name_of_command。例如,想要阅读 library 命令的帮助页,只需输入
help(library)。这将打开 library 函数的帮助页。输入 q 会退出帮助页并返回 R
shell。在尝试使用其他语言(比如 Perl 或 Ruby)将数据导入 R 之前,请先清理数据,此操作通常对您很有益。有关的进一步说明已超出本文的讨论范围,但 R
提供了清理数据的工具。此外,rjson 包提供了一个标志来跳过未转义的特殊字符。sub() 和 gsub() 对于
R 是内部函数,它会根据正则表达式(regex)规则来修改数据。gsub 的语法如下: gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE,
fixed = FALSE, useBytes = FALSE)例如,gsub("A", "a", grades) 在返回值中将每个大写的 A 转换为小写
a。perl 标志使得 R 使用 Perl 兼容的正则表达式库,而不是使用标准的正则表达式,如果想从 Perl
导入现有的正则表达式规则,可能会用到这个标志。sub() 方法更改了匹配模式的第一次出现。而 gsub() 则更改了该模式的所有出现。在 R 中提供的另一个有用的工具是 edit() 或 fix()
命令。有了它,您就可以编辑当前使用的数据集。例如,edit(grades) 打开第 R 对象
grades,这是本文前面所创建的对象。有了这个工具,您就可以动态修改数据。R 的默认编辑器为 vi
。如果想使用另一个编辑器,可以使用 options(editor = "nano") 更改它。用您选择的文本编辑器替代上面命令中的
nano,例如,Pico 或 gedit。此外,您可以通过使用 system() 命令,直接从 R 调用其他语言,该命令将会调用底层 shell 中的命令,并在 R
会话中打印出返回值。例如,system('echo "something"') 将会中断 R 会话,并将命令 echo
"something" 传递给底层的 shell。然后,它会从标准输出(stdout)中抓取返回值(在本例中是单词
something),并让该值成为 R 会话中的返回值。下面的 intern 标志可让返回值成为您可以操纵的 R
对象。system('echo "something"', intern=TRUE)也许下面的命令是更有用的示例,该命令利用底层 shell 可用的任何语言的任意脚本中的返回值来创建 R 对象:system('./my/script/here.pl', intern=true)R JSON 数据类型要了解 R 如何处理 JSON 数据,首先应该从 rjson 库开始,它将导入列表格式的数据。要了解关于 R 数据类型的更多信息,请查看
中的链接。列表数据类型是最灵活的,因为它可以从列表数据分解成任何其他数据类型,而且列表类型中的数据不必是长度相等的(矢量类型则不同,存在这方面的限制。)不过,可以应用于数据集的许多统计函数都不能用于列表格式的数据。因此,您必须从列表格式的数据中将有用的数据点提取为另一种数据类型。要探索 R 如何处理一段给定数据,可以使用命令 str()。如果使用了之前创建的 grades 对象,那么
str(grades) 的输出应该与清单 1 类似。清单 1. 在 R 中的 JSON
数据的结构str(grades)
$ :List of 4
: chr "Amy"
..$ grade1: num 35
..$ grade2: num 41
..$ grade3: num 53
$ :List of 4
: chr "Bob"
..$ grade1: num 44
..$ grade2: num 37
..$ grade3: num 28
$ :List of 4
: chr "Charles"
..$ grade1: num 68
..$ grade2: num 65
..$ grade3: num 61
$ :List of 4
: chr "David"
..$ grade1: num 72
..$ grade2: num 78
..$ grade3: num 81确定要提取哪些数据点,并使用 c(),或者使用联接,以便提取数据,如下所示: grade1.num &- c(grades[[1]]$grade1, grades[[2]]$grade1, grades[[3]]$grade1,
grades[[4]]$grade1)此命令函数将会创建一个新的对象 (grade1.num),其中包括每个学生第次考试的分数。grade1.num
现在是一个数值矢量,是 R 中最基本的数据类型。如果要删除 R 对象,那么可以发出 rm()
命令。例如,rm(grade1.num) 删除了刚刚从 R 会话创建的 grade1.num
对象。要为某个给定学生的成绩创建一个对象,可以发出以下命令: Amy.grade& - c(grades[[1]]$grade1, grades[[1]]$grade2, grades[[1]]$grade3)该命令使用了赋值运算符,包括大于 (&) 或小于 (&)
符号,具体情况取决于赋值的方向,该命令还结合使用了一个连字符 (-)。通过索引号(例如,[[1]]
是第一个列表),或者通过带美元符号运算符的名称(例如,$grade1),访问以列表格式保存的项中的独立元素。R 中更有用的一种数据类型是 data.frame,它是矢量的复合物。为了从示例数据创建
data.frame,首先需要为其余学生的分数创建数字矢量,如下所示: Bob.grade &- c(grades[[2]]$grade1, grades[[2]]$grade2, grades[[2]]$grade3)
Charles.grade &- c(grades[[3]]$grade1, grades[[3]]$grade2, grades[[3]]$grade3)
David.grade &- c(grades[[4]]$grade1, grades[[4]]$grade2, grades[[4]]$grade3)接下来,用下面的命令将所有的矢量组合成一个数据帧: All.grades &- data.frame(Amy.grade, Bob.grade, Charles.grade, David.grade)从逗号分隔值或电子表格程序导入 R 的数据也会成为 data.frame 对象,使用处理器内置到 R 中。R 统计函数要想对 grade1.num 的统计性质有基本的了解,可以使用 summary 命令:
summary(Amy.grade)
Min. 1st Qu.
Mean 3rd Qu.
53summary 命令也可以用于数据帧。summary(All.grades) 的输出与清单 2 相似。清单 2. 在 R
中的数据帧汇总
summary(All.grades)
Charles.grade
David.grade
1st Qu.:38
1st Qu.:32.50
1st Qu.:63.00
1st Qu.:75.0
Median :41
Median :37.00
Median :65.00
Median :78.0
3rd Qu.:47
3rd Qu.:40.50
3rd Qu.:66.50
3rd Qu.:79.5
:81.0为了确定两个矢量是否统计相关,可以使用处理数值矢量的易于使用的 R 函数:cor()。例如,您可以使用下面的命令来检查
Bob.grade 和 Amy.grade 对象之间的关联: cor(Amy.grade, Bob.grade)
[1] -0.9930365备注:方差和协方差使用了与关联相同的语法,但它们分别使用了 cov() 和
var() 函数,如下所示: cov(Amy.grade, Bob.grade)
var(Amy.grade, Bob.grade)
[1] -73要计算平均绝对偏差,可以使用 mad() 函数: mad(Charles.grade)
[1] 4.4478另一个处理数值矢量的有用函数是 sd()。此函数将会检查两个或两个以上矢量的标准偏差:sd(Amy.grade)
[1] 9.165151该函数显示了 Amy 的成绩的标准偏差为 9.165151。请注意,输出中有一个索引号
[1]。这让您知道可以用对待其他任何对象的方式来对待这个函数的输出,您还可以为它分配一个名称,例如,x&-
sd(Amy.grade)。如果使用 edit() 命令更改矢量 Amy.grade
的内容,x 的值也会随之改变。另一种有用的统计功能是 Kolmogorov-Smirnov 测试。您可以对示例数据使用此测试,以便确定两个学生之间的概率分布是否不同。清单 3. Kolmogorov-Smirnov
测试ks.test(Amy.grade, Bob.grade)
Two-sample Kolmogorov-Smirnov test
data:Amy.grade and Bob.grade
D = 0.3333, p-value = 1
alternative hypothesis: two-sided您可以看到,Amy.grade 和 Bob.grade 来自相同的分布。R 可视化R 因其创建数据可视化的能力而众所周知。在这个家族中,最简单的函数是
plot()。例如,plot(David.grade)
创建了该对象的一个简单散点图。使用以下命令为轴线添加标题和标签: plot(David.grade, main = "David's Grades", ylab = "Grade", xlab = "Test Number")函数 dotchart 类似于 plot,它采用了许多相同的参数,但 dotchart
使用了 labels=row.names(x) 标志,它允许您使用行名称(如果有的话)来标记图表。R 还可以生成直方图,例如,hist(All.grades[[1]])。该命令等同于
hist(Amy.grade),但它会从先前创建的数据帧中提取矢量。R 还可以用 barplot()
函数生产条形图,例如,barplot(Charles.grade)。要改变图形的方向,可以添加 horiz=TRUE
标志。可以通过使用 col 标志添加颜色,如下所示: barplot(Charles.grade, horiz=TRUE, col="darkblue")图形函数 boxplot(例如,boxplot(All.grades))很有用。使用
boxplot,可以比较完整的数据帧。要添加轴标签、中值比较的空隙(notches for median
comparison)、标题和颜色,请输入以下命令: boxplot(All.grades, main = "Class Grades", ylab = "Grade",
xlab = "Test Number", col=(c("gold","darkgreen","blue","red")),
notch=TRUE)请注意嵌套在 boxplot 函数中的连接函数的用法。结束语本文介绍了 R 语言如何提供一个强大的工具来统计分析数据,并以图形方式显示结果。R 已经在金融、生物和工程等行业提供了多种用途。目前的 InfoSphere
BigInsights 产品已包括 R 函数,R 会受到用户的欢迎。
下载资源 (grades.json.zip | 1KB)相关主题 查看 。 查看 ,获得最接近您的镜像。 了解有关
的更多信息。 研读 。
包含与 R 语言相关的很多有用的文章、提示和想法。 阅读 R 在
中的用法。 阅读 R 在
中的用法。 阅读 R 与
的结合用法。 阅读 R 在
中的用法。有趣的是,CERN 是 R
的主要内部用户。他们生产出的 Red Hat 克隆产品包括开箱即用的 R,其名称为 。 阅读 R 在
中的用法。 了解有关
的更多信息。 查看 Google 为 R 制作一个良好的 。 是一个专为金融建模设计的有趣的 R 软件包。在 ,了解关于信息管理的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源。
是除了 CRAN 之外的托管 R
软件包的站点和论坛。 下载 。在 ,了解关于大数据的更多信息。查找技术文档、how-to 文章、教育、下载、产品信息,等等。,InfoSphere BigInsights 是 IBM 基于 Hadoop 的产品,利用
Big SQL、文本分析和 BigSheets 等特性可以提高开源 Hadoop 的价值。,以本机软件安装或 VMware
映像的形式提供。,学习如何利用 InfoSphere BigInsights 管理大数据环境,导入数据进行分析,利用 BigSheets
分析数据,开发您的第一个大数据应用程序,开发 Big SQL 查询来分析大数据,并创建一个提取程序,从文本文档中获得洞察。利用可直接从 developerWorks 下载的
构建您的下一个开发项目。
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=http://www.ibm.com/developerworks/js/artrating/SITE_ID=10Zone=Big data and analytics, Information ManagementArticleID=997336ArticleTitle=使用 R 从 JSON 中的数据中获取有意义的统计方法publish-date=您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
R金融数据分析之quantmod包 01.pdf 54页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
R金融数据分析之quantmod包 第1课
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
金融行情数据分析
从传统的股市交易图表说起
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
什么是量化投资 ?
量化投资区别于传统操盘的特点
西蒙斯的大奖章基金
量化投资就是画图看图吗?
在中国这样的政策市,量化有效吗?
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
统计套利是一种基于模型的套利策略,它从资产的历史交易数据找寻规律,发现两个
或者两个以上的资产之间存在的套利机会,然后通过模型拟合资产价格的变化规律,
设定交易阀值,通过计算机程序根据市场的实时信息自动发出交易信号而进行套利。
成对交易,即价差交易,是统计套利最常用的策略,指在构建某一资产多头的同时,
构建另一种资产的空头,并在将来某一时刻同时了结两资产的头寸。这是一种市场中
性策略,可以免疫市场风险,通过捕捉两个或者多个资产之间的相对错误定价机会来
获得低风险收益。
主成分分析法,该策略通过分析与股票收益率相关的多种因素,建立回归模型,通过
分析资产实际价格和模型预测价格之间的差异来获利。当实际资产价格高于模型预测
价格时,则说明该资产被高估了,卖出该资产,待到实际资产价格与模型预测价格相
等时,再买入该资产以平掉之前的空头头寸。反之则进行相反操作。
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
算法交易又称自动交易、黑盒交易或者机器交易,它指的是通过使用计算机程序来发
出交易指令的方法。在交易中,程序可以决定的范围包括交易时间的选择、交易的价
格,甚至包括最后需要成交的证券数量。
被动型算法交易除利用历史数据估计交易模型的关键参数外,不会根据市场的状况主
动选择交易的时机与交易的数量,而是按照一个既定的交易方针进行交易。该策略的
核心是减少滑价(目标价与实际成交均价的差)。被动型算法交易最成熟,使用也最
为广泛,如在国际市场上使用最多的成交量加权平均价格(VWAP )、时间加权平均
价格(TWAP )等都属于被动型算法交易。
主动型算法交易也叫机会型算法交易。这类交易算法根据市场的状况做出实时的决策
,判断是否交易、交易的数量、交易的价格等。
DATAGURU专业数据分析社区
R金融数据分析之quantmod包 讲师黄志洪
高频交易是指从那些人们无法
利用的极为短暂的市场变化中
寻求获利的计算机化交易,比
如,某种证券买入价和卖出价
差价的微小变化,或者某只股
票在不同交易所之间的微小价
差。这种交易的速度如此之快
,以至于有些交易机构将自己
的“服务器群组”(server
farms )安置到了离交易所的计
算机很近的地方,以缩短交易
指令通过光缆以光速旅行的距
DATAGURU专业数据分析社区
正在加载中,请稍后...该项目未开启捐赠功能,可发送私信通知作者开启
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
已有帐号?
R语言实现的股票数据分析Web框架。借助于shiny的Web框架,以及quantmod的数据模型进行R的数据可视化量化交易平台。
由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...

msRs
R语言实现的股票数据分析Web框架。借助于shiny的Web框架,以及quantmod的数据模型进行R的数据可视化量化交易平台。
Rstudio主界面:

基于shiny框架的Web页面:



整体上基于R进行了简要的Web数据呈现,可在基础上进行二次开发。
正在加载...Sina Visitor System豆丁微信公众号
君,已阅读到文档的结尾了呢~~
r语言实验报告总结(共9篇)
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
r语言实验报告总结(共9篇)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 产生随机数 的文章

 

随机推荐