NA 값 대체에 대한 많은 게시물이 있습니다. 다음 표 / 프레임의 NA를 다음으로 대체 할 수 있다는 것을 알고 있습니다.
x[is.na(x)]<-0
그러나 특정 열로만 제한하려면 어떻게해야합니까? 예를 하나 보여 드리겠습니다.
먼저 데이터 세트부터 시작하겠습니다.
set.seed(1234)
x <- data.frame(a=sample(c(1,2,NA), 10, replace=T),
b=sample(c(1,2,NA), 10, replace=T),
c=sample(c(1:5,NA), 10, replace=T))
다음을 제공합니다.
a b c
1 1 NA 2
2 2 2 2
3 2 1 1
4 2 NA 1
5 NA 1 2
6 2 NA 5
7 1 1 4
8 1 1 NA
9 2 1 5
10 2 1 1
좋아, 그래서 'a'와 'b'열로만 교체를 제한하고 싶습니다. 내 시도는 :
x[is.na(x), 1:2]<-0
과:
x[is.na(x[1:2])]<-0
작동하지 않습니다.
내 data.table 시도 y<-data.table(x)
는 분명히 작동하지 않을 것입니다.
y[is.na(y[,list(a,b)]), ]
is.na 인수 내부에 열을 전달하고 싶지만 분명히 작동하지 않습니다.
data.frame과 data.table에서 이것을하고 싶습니다. 내 최종 목표는 'a'와 'b'에서 1 : 2를 0 : 1로 레코딩하고 'c'는 논리 변수가 아니기 때문에 그대로 유지하는 것입니다. 나는 많은 칼럼을 가지고 있으므로 하나씩하고 싶지 않습니다. 그리고이 작업을 수행하는 방법을 알고 싶습니다.
의견 있으십니까?