2016-02-08 210 views
0

当“指数在数据行出现坏项”错误我有一个包含在下面的格式阅读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 

当我运行下面的脚本股价.csv文件:

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( “mydata.csv”,首标= T,填充= T,index.column = 1:索引具有坏的条目在数据行:1 2 3 4 5 6 7 8

回答

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功能。

+0

谢谢,ekstroem。我添加了另一个列的时间,但是当我运行上述命令时,这给了我另一个错误:'[.data.frame'(rval,,j)中的错误:选择了未定义的列。请回复 –

+0

您能否显示您正在运行的确切代码?和文件 – ekstroem

+0

日期\t时间\t打开\t高\t低\t关闭 2013年1月30日10:15 \t \t 12762.11 12753.05 2013年1月30日11:15 \t \t 12758.05 \t 12786.45 2013年1月30日12:15 \t \t 12746.95 12726.35 \t 12740.4 2013年1月30日13:15 \t 12798.65 12786.7 2013年1月30日14:15 \t \t 12786.5 12801.45这是.csv文件将围绕3000行,代码是一样的上面写的你。 Rel < - read.zoo(“BANKNIFTY1.csv”,header = TRUE,index.column = 1:2,format =“%m /%d /%Y%H:%M”,tz =“CET”) –