在R中的数据集的所有列中更改NA的异常值

时间:2014-04-11 17:52:09

标签: r statistics outliers

我是R的初学者,无法管理R中数据集中所有列的异常值。 我用

成功地一次更改了一列
dataset$column[dataset$column %in% boxplot.stats(dataset$column)$out] <- NA

但我有21列,我需要更改NA的异常值。

你会怎么做?

你如何为列范围做到这一点?具体栏目?

1 个答案:

答案 0 :(得分:2)

您可以在列上使用apply。例如:

set.seed(1)
x = matrix(rnorm(20), ncol = 2)
x[2, 1] = 100
x[4, 2] = 200

apply(x, 2, function(row){row[row %in% boxplot(row, plot = FALSE)$out] = NA; row})

            [,1]        [,2]
 [1,] -0.6264538  1.51178117
 [2,]         NA  0.38984324
 [3,] -0.8356286 -0.62124058
 [4,]  1.5952808          NA
 [5,]  0.3295078  1.12493092
 [6,] -0.8204684 -0.04493361
 [7,]  0.4874291 -0.01619026
 [8,]  0.7383247  0.94383621
 [9,]  0.5757814  0.82122120
[10,] -0.3053884  0.59390132