使用if else和for循环移除R语言NA值出现报错应如何解决
错误原因
- R语言中不能用
==或!=运算符直接和NA做相等性判断,任何数值与NA做这类运算的返回结果都是NA,而非逻辑值TRUE/FALSE if条件语句只能接收明确的逻辑值作为判断依据,传入NA就会触发你遇到的missing value where TRUE/FALSE needed报错
修正方案
你需要改用R专门的缺失值判断函数is.na()来识别NA值,!is.na(i)就可以表示「i不是NA值」的判断条件,符合你练习需求的修正代码如下:
revenue <- c(35000, 40000, 60000, NA, 80000, 90000, 56000) cost <- c(30000, 35000, 50000, 60000, 70000, 50000, 50000) new_revenue <- c() for (i in revenue) { if (!is.na(i)) { new_revenue <- c(new_revenue, i) } }
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

