별것 아닙니다만
data.frame에 NA가 섞인 경우에 이 결측치(missing value)를 채울 때 특정 컬럼의 결측치만 0으로 채워주고 싶을 때가 있습니다.
한 컬럼은 어떻게 하는 기억하실텐데요. 두 개 이상의 컬럼에 있는 NA를 모두 0으로 채우려면 apply를 써야하나? for loop을 돌려야 하나 이렇게 생각하기 쉬운데 이렇게 하면 됩니다.
index <- c("1번줄", "2번줄", "3번줄", "4번줄", "5번줄") # 그냥 텍스트 컬럼 column1 <- c(1, 2, 3, 4, NA) # 숫자 컬럼 column2 <- c(2, 3, 4, NA, 5) # 숫자 컬럼 df <- as.data.frame(cbind(index, column1, column2)) # data.frame 생성 df df[is.na(df[, "column1"]), "column1"] <- 0 # 한 컬럼의 결측치만 처리할 때는 이렇게 df df df[, c("column1", "column2")][is.na(df[, c("column1", "column2")])] <- 0 # 두 컬럼의 결측치를 처리할 때는 이렇게 df
Rstudio에서 실행해보고 결과를 어떻게 되는지 금방 알 수 있습니다.
R 언어의 구조적에서 [와 ]가 연산자 심볼이라는 것을 기억하면 사실 간단한 것인데 여러가지 다른 랭귀지를 섞어서 사용하다면 저 컨셉을 매번 까먹습니다.