NA değerlerini değiştirmeyle ilgili birçok gönderi var. Aşağıdaki tablo / çerçevedeki NA'ların aşağıdakilerle değiştirilebileceğinin farkındayım:
x[is.na(x)]<-0
Ancak, bunu yalnızca belirli sütunlarla sınırlamak istersem ne olur? Size bir örnek göstereyim.
İlk olarak, bir veri kümesiyle başlayalım.
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))
Hangi verir:
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
Tamam, bu yüzden değiştirmeyi yalnızca 'a' ve 'b' sütunlarıyla sınırlamak istiyorum. Benim girişimim şuydu:
x[is.na(x), 1:2]<-0
ve:
x[is.na(x[1:2])]<-0
Hangi çalışmıyor.
Data.table girişimim, y<-data.table(x)
açıkçası asla işe yaramayacaktı:
y[is.na(y[,list(a,b)]), ]
İs.na argümanının içindeki sütunları aktarmak istiyorum ama bu açıkçası işe yaramaz.
Bunu bir data.frame ve data.table içinde yapmak istiyorum. Nihai hedefim, mantıksal bir değişken olmadığı için 'c'yi olduğu gibi tutarken' a 've' b'de 1: 2'den 0: 1'e yeniden kodlamaktır. Bir sürü sütunum var, bu yüzden tek tek yapmak istemiyorum. Ve bunu nasıl yapacağımı bilmek istiyorum.
Önerin var mı?