全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
18901 20
2014-11-26
1、数据保存在xlsx文件中,如下:
DateReturnRVBPV
2002/07/01

-0.01106

0.000118

0.000109

2002/07/02

0.006543

9.06E-05

8.73E-05

2002/07/03

0.003455

5.51E-05

5.65E-05

2002/07/04

-0.01033

6.18E-05

6.02E-05

2002/07/05

0.005269

7.49E-05

4.93E-05

2002/07/08

0.006217

3.57E-05

3.85E-05

2002/07/09

-0.0017

5.04E-05

4.66E-05



2、在R中,首先利用xlsx包读取数据。
require(xlsx)
realData = read.xlsx("F:/Synchros/Working/2014-002S3/data/szzzRealData.xlsx", 1, header=TRUE)
# class(realData) 显示为data.frame
# mode(realData) 显示为list
# 分开来看,class(realData[,1])显示为 factor
# class(realData[,2])显示为 numeric

3、试图利用xts包创建xts对象
realData.xts <- as.xts(realData, descr='my new xts object')
# 错误于as.POSIXlt.character(x, tz, ...) :
#  character string is not in a standard unambiguous format

似乎问题在于第一列的数据类型,但要如何处理呢?
有没有直接从EXCEL中读取数据,然后进行时间序列建模的好方法呢?求教
参考资料:http://blog.fens.me/r-xts/
这个帖子中,的样本数据集为
head(sample_matrix)               Open     High      Low    Close2007-01-02 50.03978 50.11778 49.95041 50.117782007-01-03 50.23050 50.42188 50.23050 50.397672007-01-04 50.42096 50.42096 50.26414 50.332362007-01-05 50.37347 50.37347 50.22103 50.334592007-01-06 50.24433 50.24433 50.11121 50.181122007-01-07 50.13211 50.21561 49.99185 49.99185
sample_matrix的第一列为numeric,可以直接用以构建xts对象。
sample.xlsx
大小:(10.48 KB)

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-11-26 20:49:44
用分片选取部分数据即可,试试这个codedata<- xts(data[,-1],data[,1])
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-27 09:36:20
zxn2011 发表于 2014-11-26 20:49
用分片选取部分数据即可,试试这个codedata
还是不行。提示:
错误于xts(realData[, -1], realData[, 2]) :
  order.by requires an appropriate time-based object

我想还是软件无法识别第一列是关于时间的对象。。。。
多谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-27 12:27:25
楼主,你可以把数据贴一小部分用xlsx的格式上来不?

这个难度不是很大,但是要亲自处理一下数据,才知道怎么确切处理。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-27 13:12:56
jiangbeilu 发表于 2014-11-27 12:27
楼主,你可以把数据贴一小部分用xlsx的格式上来不?

这个难度不是很大,但是要亲自处理一下数据,才知道 ...
是啊  就是数据导入与对象构建的问题 主要是R学的不系统 自己处理不知道怎么折腾
这种基本问题 很多帖子或者教程都找不到答案。
附件已添加,劳烦帮忙,3Q
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-27 13:33:28
复制代码
xx和Date之间是有一个美元符号的"$",好像显示不出来。看不到的话,就把代码改一下。已经上传了好几次,都是只显示第一行library(xlsx),实在是没有办法。
options那句,是把读入的character向量,不让它转变成Factor型向量;
strptime函数可以按照一定格式来提取时间,你的时间读入,前面是有一个空格的,不知道你注意没有。
转化成时间之前,后面的代码我就不写了,希望你可以继续做下去。至少代码运行是没有问题的。 代码.png
不是我不想贴代码,是因为代码上传每次都只显示第一行:library(xlsx)
注间strptime那里,“ %Y/%m/%d"里面有一个空格的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群