2

我在 CSV 中有这些数据:

Date  ALICORC1 ALT   ATACOBC1 AUSTRAC1 CONTINC1 BVN   DNT
40886 5.8      0.1   0.9      0.28     5.45     38.2  1.11
40889 5.8      0.1   0.88     0.28     5.37     37.7  1.04
40890 5.8      0.09  0.87     0.27     5.33     37.4  0.99
40891 5.7      0.1   0.85     0.27     5.3      37.5  0.91

这些是秘鲁股市的股票收盘价,我想将它们转换为 xts,以便找到最佳投资组合和其他东西,但我找不到将此 CSV 转换为 xts 的方法。我已经在这里查看了许多问题的答案,但没有一个有效。

我遇到的一些错误是:

  • 索引在数据行中有 XXXX 错误条目
  • 模棱两可的数据。

有谁能够帮助我?

4

1 回答 1

6

csv 代表逗号分隔值,因此问题中显示的布局不是 csv。我们将假设数据确实是 csv 格式,而不是问题所示的格式。如果它确实是问题中显示的形式而不是 csv,则省略下面的sep=","参数read.zoo。此外,如果还有其他偏差,您可能需要进一步修改参数。请参阅Zoo包中的 Zoo 小插图中?read.zoo读取数据。

这里我们使用read.zoozoo 包中的数据作为 zoo 对象读取,z然后我们将其转换为 xts x,。

请参阅R News 4/1,它专门处理 Excel 日期的日期处理,注意如果正在使用 Mac 版本的 Excel,我们可能需要稍微修改下面的代码(如参考中所述)。

library(xts) # this also loads zoo which has read.zoo

toDate <- function(x) as.Date(x, origin = "1899-12-30")
z <- read.zoo("myfile.csv", header = TRUE, sep = ",", FUN = toDate)
x <- as.xts(z)

更新

zoo 现在有 read.csv.zoo 所以 read.zoo 行可以写成:

z <- read.csv.zoo("myfile.csv", FUN = toDate)
于 2012-02-18T12:46:15.040 回答