如何合并环境中的所有xts对象

时间:2017-10-08 13:55:46

标签: r environment xts

我想组合我创建的新环境中的所有(xts)对象。我提出的最好的是使用eapply函数的以下内容。我使用了plist <- eapply(dataEnv, head) pframe <- do.call(merge, plist) 因为它占用了环境中的所有对象而我无法想出更好的东西。

这将取每个对象中值的头部,但我想要整个对象。

ngAfterViewInit()

1 个答案:

答案 0 :(得分:3)

由于您需要整个对象,因此您只需将环境转换为列表即可。然后使用do.call()进行合并,就像您已经完成的那样。例如:

library(quantmod)
e <- new.env()
getSymbols("IBM;MSFT", env = e)
pframe <- do.call(merge, as.list(e))
head(pframe)
#            IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume IBM.Adjusted
# 2007-01-03    97.18    98.40   96.26     97.27    9196800     76.18299
# 2007-01-04    97.25    98.79   96.88     98.31   10524500     76.99751
# 2007-01-05    97.60    97.95   96.91     97.42    7221300     76.30047
# 2007-01-08    98.50    99.50   98.35     98.90   10340000     77.45959
# 2007-01-09    99.08   100.33   99.07    100.07   11108200     78.37598
# 2007-01-10    98.50    99.05   97.93     98.89    8744800     77.45180
#            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
# 2007-01-03     29.91     30.25    29.40      29.86    76935100      23.08097
# 2007-01-04     29.70     29.97    29.44      29.81    45774500      23.04231
# 2007-01-05     29.63     29.75    29.45      29.64    44607200      22.91091
# 2007-01-08     29.65     30.10    29.53      29.93    50220200      23.13508
# 2007-01-09     30.00     30.18    29.73      29.96    44636600      23.15826
# 2007-01-10     29.80     29.89    29.43      29.66    55017400      22.92637