2014-04-11 8 views
1

저는 R 초보자이며 R의 데이터 집합에있는 모든 열에 이상 값을 변경할 수 없습니다 데이터 집합의 모든 열에서 NA에 대한 이상 값 변경 R

으로 한 번에 하나의 열을 변경하는 데 성공했습니다.
dataset$column[dataset$column %in% boxplot.stats(dataset$column)$out] <- NA 

하지만 NA에 대해 이상 치를 변경해야하는 21 개의 열이 있습니다.

어떻게 하시겠습니까?

어떻게 열 범위에서 사용합니까? 특정 열?

답변

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