我对R和这里相对较新。我正在尝试读取一个CSV文件,该文件包含多个OHLCV符号和日期字符串YYYYMMDD格式
我试过了:
data <- read.csv(file="DFM.csv", sep=",", dec=".", header=TRUE, col.names = c("Symbols", "Date", "Open", "High", "Low", "Close", "Volume"), stringsAsFactors = FALSE)
> class(data)
[1] "data.frame"
> head(data)
Symbols Date Open High Low Close Volume
1 DIB 20160630 5.03 5.12 5.03 5.11 6171340
2 DIB 20160629 5.10 5.11 5.02 5.02 5241741
3 DIB 20160628 5.05 5.11 5.02 5.07 5258839
4 DIB 20160627 5.01 5.11 5.01 5.03 5038589
5 DIB 20160626 4.94 5.04 4.90 5.02 10593471
6 DIB 20160623 5.14 5.14 5.09 5.12 3069970
as.Date(data$Date, format="%Y%m%d") # didn't work
不知何故,我需要在getSymbols()
中加载它,以便我可以使用chart_Series()
绘制图表。有人可以帮忙吗?
答案 0 :(得分:0)
使用您的示例数据,这是导入文件的一种可能解决方案,转换Date
列,将文件拆分为Symbol
并安排它以图表中的各个对象(股票)一种直截了当的方式:
第一行和最后三行原始文件数据(allStocks):
> both(allStocks)
Symbol Date Open High Low Close Volme
1 DIB 20160630 5.03 5.12 5.03 5.11 6171340
2 DIB 20160629 5.10 5.11 5.02 5.02 5241741
3 DIB 20160628 5.05 5.11 5.02 5.07 5258839
Symbol Date Open High Low Close Volme
16 CBD 20160627 5.6 5.6 5.6 5.6 0
17 CBD 20160626 5.6 5.6 5.6 5.6 0
18 CBD 20160623 5.6 5.6 5.6 5.6 0
让我们从转换Date列开始:
allStocks$Date <- as.Date(as.character(allStocks$Date), format="%Y%m%d")
接下来,将allStocks
拆分为Symbol
,其中列出了每个列表元素代表名称为Symbol
的个别股票的列表:
allStocks <- split(allStocks,allStocks$Symbol)
接下来,摆脱Symbol
列以准备xts对象:
allStocks <- lapply(allStocks, function(x) as.xts(x[,3:7],order.by=x[,2]))
最后将列表转换为单独的xts对象,每个对象代表一个名为Symbol
的股票:
list2env(allStocks,envir=.GlobalEnv)
您现在应该在GlobalEnvironment中有3个格式正确的对象,可以绘制图表。
即。 str
以及最后一行库存DIB
:
> str(DIB)
An ‘xts’ object on 2016-06-23/2016-06-30 containing:
Data: num [1:6, 1:5] 5.14 4.94 5.01 5.05 5.1 5.03 5.14 5.04 5.11 5.11 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:5] "Open" "High" "Low" "Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
NULL
> both(DIB)
Open High Low Close Volme
2016-06-23 5.14 5.14 5.09 5.12 3069970
2016-06-26 4.94 5.04 4.90 5.02 10593471
2016-06-27 5.01 5.11 5.01 5.03 5038539
Open High Low Close Volme
2016-06-28 5.05 5.11 5.02 5.07 5258839
2016-06-29 5.10 5.11 5.02 5.02 5241741
2016-06-30 5.03 5.12 5.03 5.11 6171340