【问题标题】:read.zoo with date as index in Rread.zoo 以日期为 R 中的索引
【发布时间】:2018-02-07 07:44:29
【问题描述】:

我有这样的 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 再次向 R 读取此表,但它不起作用..

代码如下

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

【问题讨论】:

  • format="%Y-%m-%d" 怎么样? 不起作用是什么意思?有错误提示吗?
  • 如果您的表格已经在 R 中可用,保存为 RDS 文件不是更方便吗?我知道您有 R 对象,然后您想再次将此 R 对象加载到不同的会话?如果您打算在 R 会话之外使用此表,则使用 CSV 是有意义的,但似乎并非如此。
  • format="%Y-%m-%d 还是一样的错误

标签: r csv xts zoo


【解决方案1】:

问题不清楚test.csv 的内容到底是什么。没有给出生成它的代码,只使用了write.zoo,并且没有给出文件内容,尽管它可能是问题中的第一个代码块?

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

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

我们不必指定:

  • "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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2012-10-07
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多