当我尝试将if语句与逻辑&组合时,我总是收到错误R中的陈述。
我有2个数据,f
是数据框,st_dev
是数字类。
我尝试运行:
for (w in 1:100){
if (((f[[w]]>0.02) & ((st_dev[w]-st_dev[w+1])>abs(0.0025)))==1){
o[w]<-index(f[w])
break}}}
但后来我收到错误消息:
if语句出错,缺少值需要TRUE / FALSE
希望有人可以提供帮助。提前致谢! :)
答案 0 :(得分:3)
这可能是因为您的f
数据中缺少值。尝试使用is.na()
捕获NAs或在迭代数据之前过滤掉NA。
你可能不想完全省略NA的值,但是测试这是否真的是你的问题的一种方法是运行f <- na.omit(f)
然后尝试你的循环。如果它然后运行,你就会知道f中的NAs是你的问题。