【发布时间】:2014-05-07 12:44:47
【问题描述】:
您好,我想知道如何将适用于单个代码的相同代码应用于具有多个代码的 XTS 对象。
这是适用于 1 个股票代码(收盘价)的代码:
getSymbols("IYR",from="1995-01-01",to="2014-01-01")
adj<-IYR$IYR.Adjusted
rtnM<-ROC(adj)[2:length(adj)]
r05<-rtnM[rtnM<= -.05]
plot(sort(r05),type='o',main='US ETF Drops 1995-present returns <= -5%')
100*sort(r05)
将这两条线应用到我的完整股票列表时,我似乎在挣扎
mb<- sub[sub<= -.05]
plot.xts(sort(mb),type='o',main='US ETF <= -5%')
如果我没有明确表示这是第一篇文章,我深表歉意。
> head(sub)
DIA.Close EEM.Close EFA.Close EWZ.Close FXI.Close GLD.Close
GSG.Close
2012-01-03 0.0145024539 0.030116502 0.026891372 0.039461948 0.031336368 0.025528326 0.035154052
2012-01-04 0.0027463668 -0.005642487 -0.005913678 0.003678319 -0.014839976 0.005053908 0.004672906
2012-01-05 -0.0001613424 -0.004382015 -0.014939029 -0.013610224 0.006747285 0.006804694 -0.015267472
2012-01-06 -0.0033942169 -0.012739026 -0.013740366 -0.010031539 -0.014677091 -0.003682778 0.004428052
2012-01-09 0.0010518226 0.010411338 0.003858265 0.020800615 0.021100797 -0.004462870 0.001177510
2012-01-10 0.0058055315 0.021517224 0.015086276 0.020376751 0.022299616 0.013581474 0.007620201
> mb<- sub[sub<= -.05]
Error in `[.xts`(sub, sub <= -0.05) : 'i' or 'j' out of range
【问题讨论】:
-
sub 每列有一个代码......你想精确地设置什么子集?我的意思是 a) 仅行中所有字段小于 -.05 的行或 b) 每列删除所有小于 -0.05 的字段?
-
作为旁注,您可以将前几行简化为
rtnM <- ROC(Ad(IYR), na.pad=FALSE) -
最重要的是,在对 xts 对象进行排序时,请确保使用 coredata: sort(coredata(r05)),没有它我不会对 r05 进行排序。
-
非常感谢您的回答,他们非常棒。谢谢