R에서 null object 개념이 있는데, vector에서 NA(Not available), vector가 아닌 경우에 NULL이 쓰이는 듯 하다.
NA체크는 is.na() 함수로, NULL 체크는 is.null() 함수로 체크한다.
예제 1) data frame에 NA가 있으면 0으로 치환하는 코드이다
<코드>
library(Matrix)
df <- data.frame(matrix(sample(c(NA, 1:10), 25, replace = TRUE), 5))
df[is.na(df)] <- 0
<결과>
> df <- data.frame(matrix(sample(c(NA, 1:10), 25, replace = TRUE), 5))
> df
X1 X2 X3 X4 X5
1 2 10 6 6 NA
2 3 5 10 5 NA
3 10 7 6 6 2
4 3 2 1 3 4
5 3 7 6 4 6
> df[is.na(df)] <- 0
> df
X1 X2 X3 X4 X5
1 2 10 6 6 0
2 3 5 10 5 0
3 10 7 6 6 2
4 3 2 1 3 4
5 3 7 6 4 6
예제 2) data frame의 특정 컴럼의 값이 NA이면 0으로 변경한다.
rank_value <- scores["data",]$total
if (is.na(rank_value)) {
rank_value <- 0
}
예제 3) 만약 단순한 null 체크라면 다음과 사용할 수 있다.
<코드>
is.defined_function = function(x) { !is.null(x) }
df
is.defined_function(df)
xxxx
is.defined_function(xxxx)
<결과>
> is.defined_function = function(x) { !is.null(x) }
> df
X1 X2 X3 X4 X5
1 2 10 6 6 0
2 3 5 10 5 0
3 10 7 6 6 2
4 3 2 1 3 4
5 3 7 6 4 6
> is.defined_function(df)
[1] TRUE
> xxxx
에러: 객체 'xxxx'를 찾을 수 없습니다
> is.defined_function(xxxx)
Error in is.defined_function(xxxx) : 객체 'xxxx'를 찾을 수 없습니다
'R' 카테고리의 다른 글
[R] rjson으로 data frame 으로 만들기 (0) | 2015.08.05 |
---|---|
[R] 리눅스 (Red-hat 계열) 모듈 설치 (0) | 2015.08.05 |
[R] HTTP Client - httr (0) | 2015.08.03 |
R에서 한줄 읽기 (readline) (0) | 2015.08.01 |
R에서 파일 쓰기 (write) (0) | 2015.08.01 |