0

考虑以下代码

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)

可以工作,但该命令不起作用。

你能建议我一些工作吗?

谢谢,

4

1 回答 1

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))

这个问题点头

于 2012-08-31T11:01:55.083 回答