【问题标题】:how to fix error "missing value where TRUE/FALSE needed" at R?如何在 R 处修复错误“需要 TRUE/FALSE 的缺失值”?
【发布时间】:2015-10-06 12:45:20
【问题描述】:

我的代码:

for(k in 1:length(dat)){
   if(dat==boxplot(dat)$out[k]){
      dat<-NA
   }
}

结果是

Error in if (dat == boxplot(dat)$out[k]) { : 
  missing value where TRUE/FALSE needed

如何解决?

【问题讨论】:

  • 能否给我们一个reproducible example 请...? (dat 在这个小代码块中的使用方式让我非常紧张!)
  • 在它前面加上length(boxplot(dat)$out ) &amp;。如果不存在,则一系列连词中的第一个 FALSE 将创建一个 FALSE。

标签: r if-statement error-handling


【解决方案1】:

可以做两件事之一;修复具体错误

for(k in 1:length(dat)){
        if(length(boxplot(dat)$out ) & dat==boxplot(dat)$out[k]){
          dat<-NA
        }
      }

但这确实是笨拙的 R 代码。更好的可能是:

dat[ dat %in% boxplot(dat)$out ] <- NA

(但是,删除异常值是统计上的不当行为。)

【讨论】:

  • 对不起,什么是“统计舞弊”?
  • 故意扭曲数据以符合先入为主的统计“正态性”概念。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多