You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:06:01