Soru R'de dplyr filtresinde "içermez" nasıl belirtilir


R'ye yeni geldim.

Tabloyu kullanarak SE_CSVLinelist_clean, Değişken olarak adlandırılan satırları çıkarmak istiyorum where_case_travelled_1 Dizeleri içermiyor "Outside Canada" VEYA "Outside province/territory of residence but within Canada". Ardından yeni bir tablo oluşturun SE_CSVLinelist_filtered.

SE_CSVLinelist_filtered <- filter(SE_CSVLinelist_clean, 
where_case_travelled_1 %in% -c('Outside Canada','Outside province/territory of residence but within Canada'))

Yukarıdaki kod sadece "c" ve "-c" yi kullanmadığım zamanlarda çalışır.
Öyleyse, yukarıdaki ülke veya ilin dışında kalan satırları hariç tutmak istediğimde yukarıdakileri nasıl belirtebilirim?

Çok teşekkürler


20
2017-12-23 21:51


Menşei


"İçermez" seçeneğini kullanmak istediğinizi düşünüyorsanız, kendi fonksiyonunuzu tanımlamak isteyebilirsiniz. Örneğin `%notin%` = function(x,y) !(x %in% y). Sonra yapabilirsin x %notin% y yerine !(x %in% y). - eipi10


Cevaplar:


Bunu not et %in% mantıksal bir vektör döndürür TRUE ve FALSE. Bunu reddetmek için kullanabilirsiniz ! mantıksal ifadenin önünde:

SE_CSVLinelist_filtered <- filter(SE_CSVLinelist_clean, 
 !where_case_travelled_1 %in% 
   c('Outside Canada','Outside province/territory of residence but within Canada'))

Orijinal yaklaşımınızla ilgili olarak -c(...), - "sayısal veya karmaşık vektörler üzerinde aritmetik (veya bunlara zorlanabilecek nesneler) aritmetik yapan" tek bir operatördür help("-")). Sayısal veya karmaşık olarak zorlanamayan bir karakter vektörü ile uğraştığınız için kullanamazsınız. -.


38
2017-12-23 21:55