【问题标题】:R - Stock market data from csv to xtsR - 从 csv 到 xts 的股票市场数据
【发布时间】:2012-03-09 07:19:45
【问题描述】:

我在 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 错误条目
  • 不明确的数据。

谁能帮帮我?

【问题讨论】:

  • 请提供您尝试过的代码以及您收到的确切错误。

标签: r csv xts data-manipulation


【解决方案1】:

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

这里我们使用zoo包中的read.zoo将数据作为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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多