我正在尝试将一个if条件应用于R中向量的每个元素,但似乎我做错了什么:
nobjects <- length(EMATRSTDV)
for (i in 1:nobjects) {
if (MPEMAPlusDemiTR - EMATRSTDV > Cl(myData$AAPL)){
ShortLevel <- MPEMAPlusDemiTR - EMATRSTDV
} else {
ShortLevel <- "..."
}
}
我收到错误消息:
if中的错误(MPEMAPlusDemiTR - EMATRSTDV&gt; Cl(myData $ AAPL)){: 缺少需要TRUE / FALSE的值 另外:警告信息: 在if(MPEMAPlusDemiTR - EMATRSTDV&gt; Cl(myData $ AAPL)){: 条件的长度> 1,只使用第一个元素
答案 0 :(得分: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] <- "..."
}
}