2016-02-22 56 views
-1

我想,如果申請的條件R中矢量的每一個元素,但目前看來,我做錯了什麼:如果添加其他..... R中

nobjects <- length(EMATRSTDV) 
for (i in 1:nobjects) { 
if (MPEMAPlusDemiTR - EMATRSTDV > Cl(myData$AAPL)){ 
ShortLevel <- MPEMAPlusDemiTR - EMATRSTDV 
} else { 
ShortLevel <- "..." 
} 
} 

我收到錯誤消息:

錯誤如果(MPEMAPlusDemiTR - EMATRSTDV>氯(myData的$ Apple)){: 缺失值,其中TRUE/FALSE需要 此外:警告消息: 在如果(MPEMAPlusDemiTR - EMATRSTDV>氯(myData $ AAPL)){: 條件的長度> 1 a ND僅第一元件將被用來

+0

'Cl(myData $ AAPL)'是什麼? –

+0

實際上是AAPL向量的收盤價。獲得使用:getSymbols(mySymbols,env = myData,src =「yahoo」,from = startDate,to = endDate) head(myData $ AAPL) – Frantz

+1

您沒有使用'i'是嗎?... – Cath

回答

0

條件具有長度> 1且僅第一個元素將被用來

良好,從該錯誤信息並從其中計算length(EMATRSTDV)代碼很顯然EMATRSTDV是一個向量。在條件你必須使用索引值

for (i in 1:nobjects) { 
    if (MPEMAPlusDemiTR - EMATRSTDV[i] > Cl(myData$AAPL)){ 
     ShortLevel[i] <- MPEMAPlusDemiTR - EMATRSTDV[i] 
    } else { 
     ShortLevel[i] <- "..." 
    } 
}