Cla*_*nry 4 r list dataframe xts quantmod
疯狂尝试创建一些包含xts对象的列表/数据框架.
我正在尝试循环遍历字符串向量(每个经济"代码"),并使用quantmod包中的getSymbols函数为每个字符串创建一个xts对象(每个"ticker"的长度不同).然后我想让每个xts对象成为数据框中的一个数据点.我还计划在数据框中有一些相关的数据(比如,每个xts对象的最大日期,以及我在别处指定的"标题"等),但我可以自己处理.
试图创建一个xts对象列表让我疯狂.当我尝试这样的事情时,我总是得到一个字符串列表:
test <- list()
for (i in 1:length(fredTickers))
{# import Data from FRED database
# this creates a list of strings, I'm hoping for list of xts objects...
test[i] <- getSymbols(fredTickers[i],src="FRED")
# xts objects are created for each, but not assigned to the list
}
# this creates an xts object named EVANQ.
# The test2 object is just a string with value "EVANQ".
test2 <- getSymbols("EVANQ",src="FRED")
Run Code Online (Sandbox Code Playgroud)
处理这些xts对象让我疯狂.我尝试了很多技巧.
谢谢您的帮助.
在文档中多次声明,默认情况下,对象被分配给全局环境,而不是显式返回.指定auto.assign = FALSE执行相反的操作.还记得'['和'[[')之间的区别.
tickers <- c("F", "YHOO")
test <- list()
for (i in 1:length(tickers)) {
test[[i]] <- getSymbols(tickers[i], src="yahoo", auto.assign=FALSE, return.class="xts")
}
head(test[[1]])
F.Open F.High F.Low F.Close F.Volume F.Adjusted
2007-01-03 7.56 7.67 7.44 7.51 78652200 7.18
2007-01-04 7.56 7.72 7.43 7.70 63454900 7.36
2007-01-05 7.72 7.75 7.57 7.62 40562100 7.29
2007-01-08 7.63 7.75 7.62 7.73 48938500 7.39
2007-01-09 7.75 7.86 7.73 7.79 56732200 7.45
2007-01-10 7.79 7.79 7.67 7.73 42397100 7.39
class(test[[1]])
[1] "xts" "zoo"
Run Code Online (Sandbox Code Playgroud)