R:创建xts对象的动态列表

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对象让我疯狂.我尝试了很多技巧.

谢谢您的帮助.

ton*_*nov 7

在文档中多次声明,默认情况下,对象被分配给全局环境,而不是显式返回.指定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)