動物園のオブジェクトのリストがあります。コア データは、いくつかの銘柄記号の調整された終値、月次データです。各リスト オブジェクトは、ティッカーごとに個別の時系列です。各オブジェクトで、月ごとの月次変化を計算したいと思います。それが役立つ場合、これが私の目的の計算に到達するものです。
path = 'C:/SectorRotationSymbList072013.csv'
symbs = read.csv(path, header = FALSE, stringsAsFactors = FALSE)
symbs = symbs[, 1]
importData = vector('list', length(symbs))
#Get monthly pricing data.
for (sIdx in 1:length(symbs)){
#Import the data for each symbol into the list.
importData[[sIdx]] = get.hist.quote(instrument= symbs[sIdx],
start="2000-01-01", end="2013-07-15", quote="AdjClose",
provider="yahoo", origin="1970-01-01",
compression="m", retclass="zoo")
}
names(importData) = symbs
次のように sapply を使用して、各オブジェクトの前月比の変化を取得できます。
monthlyGainsLosses = sapply(importData, diff)
ただし、相対的な変化が必要です(%)。以下を含む、単純な計算で考えられるすべてのバリエーションを試しました。
monthlyGainsLosses = sapply(importData, diff / importData)
monthlyGainsLosses = sapply(importData, diff / coreData(importData))
どれも機能しません。後者の場合(私には最も論理的だと思われます)、エラーが発生します:
二項演算子への非数値引数。誰でも助けることができますか?