Birkaç ids ve bir değeri olan R'de bir data.table var. Her bir kimlik grubu kombinasyonu için birkaç satır vardır. Bu satırlardan biri "değer" sütununda NA içeriyorsa, bu satırların tüm birleşimleriyle tüm satırları kaldırmak istiyorum. Örneğin, aşağıdaki tabloda, id1 == 2
ve id2 == 1
için tüm satırları kaldırmak istiyorum.Birden çok sütunun değerlerine göre R içindeki data.table satırlarını kaldırın.
Yalnızca bir kimlik sahibi olsaydım dat[!(id1 %in% dat[is.na(value),id1])]
yapardım. Örnekte, bu, i1 == 2 olan tüm satırları kaldıracaktır. Ancak, birkaç sütun eklemeyi başaramadım. Eğer değerlerden herhangi NA
ler ise id1
ve id2
kombinasyonu başına kontrol etmek ve daha sonra bu bütün kombinasyonunu kaldırmak isterseniz
dat <- data.table(id1 = c(1,1,2,2,2,2),
id2 = c(1,2,1,2,3,1),
value = c(5,3,NA,6,7,3))
deneyin 'dat [! (Id1 == 2 ID2 == 1)] 'ya da' setkey (dat id1, ID2) [! J (2, 1)] ' – akrun
Bunun, yukarıdaki basit örnekte çalışacağını biliyorum. Ancak, sorunun NA'larla çok sayıda satır olabileceğinden daha genel olması amaçlanmıştır. – lilaf
Sanırım o dat [, eğer (hepsi (! Is.na (değer))) .SD,. (Id1, id2)] ' –