考虑以下代码
require(quantmod)
list.X <- c('ANFCI', 'NFCI', 'STLFSI', 'WAAA', 'WBAA', 'WCOILWTICO','WFII10',
'WGS10YR', 'WGS1YR', 'WGS3YR', 'WGS5YR', 'WSWP10', 'WTB3MS')
data.X <- new.env()
getSymbols(list.X, src = 'FRED', from = '1950-01-01', env = data.X)
现在我将这些时间序列放在data.X
环境中;让我需要输入data.X
另一个时间序列:
getSymbols('SPY', from = '1950-01-01', env = data.X)
默认情况下,这是从Yahoo下载的。使用最后一个命令,我是否根据需要将其放入data.X
?
然后让我想合并它们。我相信像
这样的东西X <- do.call(merge, as.list(c(list.X, 'SPY')), envir = data.X)
可行,但该命令无法正常工作。
Coudl你建议我做点什么吗?
谢谢,
答案 0 :(得分:3)
试试这个:
mmerge <- function(.list, all=FALSE, env=.GlobalEnv) {
.list <- lapply(.list, get, env)
Reduce(function(...) merge(..., all=all), .list)
}
head(mmerge(list.X, env=data.X))
head(mmerge(as.list(c(list.X, 'SPY')), env=data.X))