複数のティッカーの quantmodgetSymbols
関数を使用して過去の価格をダウンロードし、次のコードを使用してリストまたは多変量 XTS に変換します。
library(quantmod)
myenv <- new.env()
tickers <- c("^GSPC", "AAPL", "MSFT", "GOOG", "^RUT")
getSymbols(tickers, env=myenv)
ll <- eapply(myenv, function(x) x) # Convert to list
ts <- do.call(merge, (eapply(myenv, Ad))) # Convert to multivariate XTS and extract only the adjusted price
このアプローチの問題点は、リスト内のティッカーの順序と XTS が で指定した順序と同じでないことですtickers
。
> names(ll)
[1] "AAPL" "GSPC" "GOOG" "RUT" "MSFT"
> names(ts)
[1] "AAPL.Adjusted" "GSPC.Adjusted" "GOOG.Adjusted" "RUT.Adjusted"
[5] "MSFT.Adjusted"
eapply
これは、次のヘルプ ページで説明されているように、操作がランダムな順序で実行されるためだと思いますeapply
。
Note that the order of the components is arbitrary for hashed environments.
tickers
上記と同じ操作を実行して、ベクトルで指定された順序と同じ順序で出力するにはどうすればよいですか? つまり、リストの最初の項目/XTS の最初の列は、tickers
ベクトルの最初の要素に対応する必要があります。