我有一个动物园对象列表。核心数据是几个股票代码的调整收盘价,月度数据。每个列表对象是每个代码的单独时间序列。我想计算每个对象中每个月的每月变化。如果它有帮助,这就是让我达到我想要的计算的原因:
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))
这些都不起作用。对于后者(这对我来说似乎最合乎逻辑)我得到了错误:
二元运算符的非数字参数。任何人都可以帮忙吗?