read.zoo,日期为R中的索引

时间:2018-02-07 07:44:30

标签: r csv xts zoo

我有像这样的xts表

           Open     High      Low    Close       Volume
2011-09-13     5.80     6.00     5.65     5.97 5.837138e+01
2011-09-14     5.58     5.72     5.52     5.53 6.114598e+01
2011-09-15     5.12     5.24     5.00     5.13 8.014080e+01
2011-09-16     4.82     4.87     4.80     4.85 3.991401e+01

我通过write.zoo

将此表写入csv

但是现在我想通过read.zoo再次读取这个表,它不起作用..

以下代码

indata <- read.zoo(file = "H:/UsersData/test.csv", header=TRUE, index.column = 1, format="%Y/%m/%d", tz="CET", sep = ',')

仍然是错误

Error in read.zoo(file = "test.csv",  : 
  index has 2313 bad entries at data rows: 1 2 3 4 5 6 7 8 9 10 11 12

1 个答案:

答案 0 :(得分:1)

关于test.csv的内容究竟是什么,问题尚不明确。没有给出生成它的代码,只使用了write.zoo,并且没有给出文件内容,尽管它可能是问题中的第一个代码块?

在没有明确可重复的输入定义的情况下,我们假设它是由最后的注释中的代码重复生成的。如果文件内容看起来与那个不同,则需要相应地修改读取它的代码。

在下面的代码中index = 0表示输入将索引存储在rownames中。

我们不必指定:

  • "Date"类索引,因为这是默认的
  • format,因为yyyy-mm-dd也是默认
  • header因为还有一个数据字段而不是标题字段,所以它会自动假设第一行是标题

代码:

library(zoo)
read.zoo("test.csv", index = 0)

注意

假设输入文件是这样生成的:

Lines <- '
           Open     High      Low    Close       Volume
2011-09-13     5.80     6.00     5.65     5.97 5.837138e+01
2011-09-14     5.58     5.72     5.52     5.53 6.114598e+01
2011-09-15     5.12     5.24     5.00     5.13 8.014080e+01
2011-09-16     4.82     4.87     4.80     4.85 3.991401e+01
'
cat(Lines, file = "test.csv")