【发布时间】:2013-05-27 10:30:12
【问题描述】:
con = gzcon(url('http://www.systematicportfolio.com/sit.gz', 'rb'))
source(con)
close(con)
load.packages("TTR,PerformanceAnalytics,quantmod,lattice")
#######################################################
#Get and Prep Data
#######################################################
data <- new.env()
tickers<-spl("VTI,IEF,TLT,DBC,VNQ,GLD")
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data)
for(i in ls(data)) data[[i]] = adjustOHLC(data[[i]], use.Adjusted=TRUE)
bt.prep(data, align='remove.na', dates='1990::2013')
我遇到了从 xts 对象中减去特定列的问题。
prices = data$prices
ret = prices / mlag(prices) - 1
ret - ret[,3] #subtract column three from every other column don't seem to work
有没有快速的解决方案?
我试过了:
apply(ret,2,function(x) x - x[,3]) #doesn't seem to work
有什么想法吗?
【问题讨论】:
-
SIT 使用 XTS 对象来包装时间序列,所以我认为这不是问题。如果你做 str(ret),它是一个 xts 对象。
-
SIT 使用 XTS 对象包装时间序列。上面的示例只是下载数据并让 SIT 将其包装在 XTS 对象周围。但我现在将其编辑为“最小”版本..
-
这里还有一点点
apply-like:sweep(x, 1, x[, 3])