r - 在 R 如何将此 CSV 数据转换为 XTS

标签 r csv xts

我正在尝试读取 CSV 文件并将其更改为 XTS 格式。但是,我遇到了 CSV 格式的问题,在单独的列中有日期和时间字段。

2012.10.30,20:00,1.29610,1.29639,1.29607,1.29619,295
2012.10.30,20:15,1.29622,1.29639,1.29587,1.29589,569
2012.10.30,20:30,1.29590,1.29605,1.29545,1.29574,451
2012.10.30,20:45,1.29576,1.29657,1.29576,1.29643,522
2012.10.30,21:00,1.29643,1.29645,1.29581,1.29621,526
2012.10.30,21:15,1.29621,1.29644,1.29599,1.29642,330

我想把它拉进来

euXTS <- as.xts(read.zoo(file="EURUSD15.csv", sep=",", format="%Y.%m.%d", header=FALSE))

但它给了我这条警告信息,所以我想我必须以某种方式附加时间戳,但我不确定这样做的最佳方法。

Warning message:
In zoo(rval3, ix) :
Some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique

最佳答案

最好使用 read.zoo 直接读取 zoo 对象中的 ts,很容易强制转换为 xts one:

library(xts)
ts.z <- read.zoo(text='2012.10.30,20:00,1.29610,1.29639,1.29607,1.29619,295
2012.10.30,20:15,1.29622,1.29639,1.29587,1.29589,569
2012.10.30,20:30,1.29590,1.29605,1.29545,1.29574,451
2012.10.30,20:45,1.29576,1.29657,1.29576,1.29643,522
2012.10.30,21:00,1.29643,1.29645,1.29581,1.29621,526
2012.10.30,21:15,1.29621,1.29644,1.29599,1.29642,330',
         sep=',',index=1:2,tz='',format="%Y.%m.%d %H:%M")
as.xts(ts.z)

                         V3      V4      V5      V6  V7
2012-10-30 20:00:00 1.29610 1.29639 1.29607 1.29619 295
2012-10-30 20:15:00 1.29622 1.29639 1.29587 1.29589 569
2012-10-30 20:30:00 1.29590 1.29605 1.29545 1.29574 451
2012-10-30 20:45:00 1.29576 1.29657 1.29576 1.29643 522
2012-10-30 21:00:00 1.29643 1.29645 1.29581 1.29621 526
2012-10-30 21:15:00 1.29621 1.29644 1.29599 1.29642 330

关于r - 在 R 如何将此 CSV 数据转换为 XTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385674/

相关文章:

R quantmod::getFinancials

r - 如何有效地对稀疏数据进行聚合

r - 使用 dplyr 将行添加到数据框中

r - 使用 ggplot2 绘制样条函数

r - dplyr 按相反字母顺序排列

linux cron 截断大文件

arrays - 如何读取 CSV 文件的 n 列以检查它们是否为空?

python - 随机访问csv文件内容

read.zoo 以日期和时间作为 R 中的索引

r - 我可以在 R 中使用 write.csv 编写一个 xts 对象吗