在 R 数据框中用 NA 替换异常值

Replacing outliers with NA in R data frame

我在 R 数据框中有一些数据。我必须从中删除异常值。我正在使用 boxplot 函数从中删除异常值。尽管此方法删除了完整的行。

如何修改它以用 NA 替换异常值以便保存数据?

这是我的代码:

outliers <- boxplot(outlier_H_rem$var1, plot=FALSE)$out
if(length(outliers) == 0)
  { outlier_H_rem1<-outlier_H_rem
  boxplot(outlier_H_rem1$var1)} else { 
  outlier_H_rem1<-outlier_H_rem[-which(outlier_H_rem$var1 %in% outliers),]
  var1<-outlier_H_rem1$var1}
  boxplot(outlier_H_rem1$var1)
outlier_H_rem1 <- outlier_H_rem

outliers <- boxplot(outlier_H_rem$var1, plot=FALSE)$out

outlier_H_rem1$var1[outlier_H_rem1$var1 %in% outliers] <- NA

样本数据为:

outlier_H_rem <- data.frame(var1 = c(runif(100), 42, 17, 33))