이경수 선생님의 수학실험실

Subsetting_Removing Missing Values 본문

R

Subsetting_Removing Missing Values

(이경수) 2021. 4. 15. 13:58

is.na( ) 함수로 TRUE에 해당하는 결측값을 찾아내 이를 제거할 수 있다.

> x<-c(1,2,NA,4,5,NA)
> dim(x)<-c(2,3)
> x
     [,1] [,2] [,3]
[1,]    1   NA    5
[2,]    2    4   NA
> is.na(x)
      [,1]  [,2]  [,3]
[1,] FALSE  TRUE FALSE
[2,] FALSE FALSE  TRUE
> bad<-is.na(x)
> x[bad]
[1] NA NA
> x[!bad]
[1] 1 2 4 5

 

두 벡터에서 대응하는 두 수끼리 서로 곱해야 하는 경우, 둘 중 적어도 하나가 결측값이면 곱셈을 할 수 없다. 이때, complete.cases( ) 함수를 사용하여 두 값 중 하나라도 결측값인 경우를 골라낼 수 있다. 

> x<-c(1,2,NA,4,NA,6,7)
> y<-c(3,NA,NA,2,1,9,NA)
> ma<-complete.cases(x,y)
> ma
[1]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE
> x[ma]
[1] 1 4 6
> y[ma]
[1] 3 2 9

 

complete.cases( ) 함수에 대한 예제

> airquality[1:10,]
   Ozone Solar.R Wind Temp Month Day
1     41     190  7.4   67     5   1
2     36     118  8.0   72     5   2
3     12     149 12.6   74     5   3
4     18     313 11.5   62     5   4
5     NA      NA 14.3   56     5   5
6     28      NA 14.9   66     5   6
7     23     299  8.6   65     5   7
8     19      99 13.8   59     5   8
9      8      19 20.1   61     5   9
10    NA     194  8.6   69     5  10
> good<-complete.cases(airquality)
> airquality[good,][1:10,]
   Ozone Solar.R Wind Temp Month Day
1     41     190  7.4   67     5   1
2     36     118  8.0   72     5   2
3     12     149 12.6   74     5   3
4     18     313 11.5   62     5   4
7     23     299  8.6   65     5   7
8     19      99 13.8   59     5   8
9      8      19 20.1   61     5   9
12    16     256  9.7   69     5  12
13    11     290  9.2   66     5  13
14    14     274 10.9   68     5  14

'R' 카테고리의 다른 글

Control Structure_if else & for loops  (0) 2021.04.15
Control Structures_While loops  (0) 2021.04.15
Subsetting_Partial Matching  (0) 2021.04.15
Subsetting_Matrices  (0) 2021.04.15
Subsetting_Lists  (0) 2021.04.15
Comments