1
我想合併在我創建的新環境中的所有(xts)對象。我想到的最好的是使用eapply
函數的以下內容。我使用了eapply
,因爲它採用了環境中的所有對象,我不能想出更好的東西。如何合併環境中的所有xts對象
這將採取每個對象的值的頭,但我想整個對象。
plist <- eapply(dataEnv, head)
pframe <- do.call(merge, plist)
我想合併在我創建的新環境中的所有(xts)對象。我想到的最好的是使用eapply
函數的以下內容。我使用了eapply
,因爲它採用了環境中的所有對象,我不能想出更好的東西。如何合併環境中的所有xts對象
這將採取每個對象的值的頭,但我想整個對象。
plist <- eapply(dataEnv, head)
pframe <- do.call(merge, plist)
既然您想要整個對象,您可以簡單地將環境轉換爲列表。然後合併使用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
謝謝!事實上,在我發佈之前,我試圖做到這一點,但得到了一些神祕的錯誤消息。它現在有效))) – user8369515