【发布时间】:2017-10-27 12:00:19
【问题描述】:
我已经从雅虎下载了 DJI 历史数据作为 csv 文件,以便在 R 中进行进一步分析。出于好奇,getSymbols("^DJI") 似乎没有用,但我离题了。
关键是我不知道怎么把这个csv文件转成时间序列格式。
这是目前的输出和问题:
> DJI = read.csv("^DJI.csv")
> head(DJI)
Date Open High Low Close Adj.Close Volume
1 1/29/1985 1277.72 1295.49 1266.89 1292.62 1292.62 13560000
2 1/30/1985 1297.37 1305.10 1278.93 1287.88 1287.88 16820000
3 1/31/1985 1283.24 1293.40 1272.64 1286.77 1286.77 14070000
4 2/1/1985 1276.94 1286.11 1269.77 1277.72 1277.72 10980000
5 2/4/1985 1272.08 1294.94 1268.99 1290.08 1290.08 11630000
6 2/5/1985 1294.06 1301.13 1278.60 1285.23 1285.23 13800000
> chartSeries(DJI)
Error in try.xts(x, error = "chartSeries requires an xtsible object") :
chartSeries requires an xtsible object
所以{quantmod} 函数chartSerie 正在请求.xts 文件,但DJI 中的Date 列不会立即被识别为这样:
> DJI = as.Date(DJI$Date)
Error in charToDate(x) :
character string is not in a standard unambiguous format
在以下答案后编辑:
> head(DJI)
Open High Low Close Adj.Close Volume
1985-01-29 1277.72 1295.49 1266.89 1292.62 1292.62 13560000
1985-01-30 1297.37 1305.10 1278.93 1287.88 1287.88 16820000
1985-01-31 1283.24 1293.40 1272.64 1286.77 1286.77 14070000
1985-02-01 1276.94 1286.11 1269.77 1277.72 1277.72 10980000
1985-02-04 1272.08 1294.94 1268.99 1290.08 1290.08 11630000
1985-02-05 1294.06 1301.13 1278.60 1285.23 1285.23 13800000
> is.ts(DJI)
[1] FALSE
【问题讨论】:
-
试试
DJI$Date <- as.Date(DJI$Date,format="%m/%d/%Y") -
@AndrewGustar 谢谢。在您指示的步骤之后,如何将 csv 文件转换为 xts 文件?
-
我已将其发布为答案 - 需要更多空间!
标签: r csv time-series xts