"索引在数据行中有错误的条目"读取CSV时出错

时间:2016-02-08 14:05:09

标签: r zoo

我的.csv文件包含以下格式的股票价格

Date    Open    High    Low Close
3/7/2014 10:15  228.28  236.58  228.23  236.18
3/7/2014 11:15  236.23  241.27  236.09  241.14
3/7/2014 12:15  241.1   246.12  241.1   242.96
3/7/2014 13:15  242.84  243.92  242     242.32

当我运行以下脚本时:

test <- as.xts(read.zoo(mytest.csv', header=T, fill=T, index.column = 1, row.names=NULL,stringsAsFactors = FALSE, sep="",format="%m/%d/%y %H:%M", tz=""))

显示以下错误

  

read.zoo错误(&#34; mydata.csv&#34;,header = T,fill = T,index.column =   1,:索引在数据行中有错误的条目:1 2 3 4 5 6 7 8

1 个答案:

答案 0 :(得分:1)

我不确定从哪里获得as.xts函数,但我看到了将数据导入R所需的两个小修补程序。

首先,您应该为时间添加一个额外的变量名称,因为read.zoo函数使用与read.table相同的分隔符,因此如果您希望它与标题一起使用,那么每个列都需要一个名称

Date     Time   Open    High    Low     Close
3/7/2014 10:15  228.28  236.58  228.23  236.18
3/7/2014 11:15  236.23  241.27  236.09  241.14
3/7/2014 12:15  241.1   246.12  241.1   242.96
3/7/2014 13:15  242.84  243.92  242     242.32

其次,您可以在上面的文件中阅读如下

library(zoo)
indata <- read.zoo("mydata.csv", header=TRUE, index.column = 1:2, format="%m/%d/%Y %H:%M", tz="CET")

请注意,由于日期/时间分为两列,因此会给出两个索引。另外,我认为日期/时间转换需要tz才能生效。无论如何,上面给出了

> indata
                      Open   High    Low  Close
2014-03-07 10:15:00 228.28 236.58 228.23 236.18
2014-03-07 11:15:00 236.23 241.27 236.09 241.14
2014-03-07 12:15:00 241.10 246.12 241.10 242.96
2014-03-07 13:15:00 242.84 243.92 242.00 242.32

可以传递给其他R函数。