我想根据多列中的值删除我的数据集中的特定行。只有满足所有3列中的条件时才应删除行。使用dplyr删除基于多个条件的行
这是我的代码:
test_dff %>%
filter(contbr_nm != c('GAITHER, BARBARA', 'PANIC, RADIVOJE', 'KHAN, RAMYA') &
contbr_city != c('APO AE', 'PORSGRUNN', 'NEW YORK') &
contbr_zip != c('9309', '3924', '2586'))
此代码应该删除我的表12行。相反,它消除了绝大多数。我怀疑,它会删除所有可能的行,只要满足其中一个条件。
有没有更好的解决方案,还是我必须使用的方法,描述here?
我是否需要分别指定每个组合?像这样?这种方法也会删除太多的行,所以它也是错误的。
test_dff %>%
filter((contbr_nm != 'GAITHER, BARBARA' & contbr_city != 'APO AE' & contbr_zip != '9309') &
(contbr_nm != 'PANIC, RADIVOJE' & contbr_city != 'PORSGRUNN' & contbr_zip != '3924') &
(contbr_nm != 'KHAN, RAMYA' & contbr_city != 'NEW YORK' & contbr_zip != '2586'))
如果我专注于删除行只基于一个变量,这段代码的工作原理:
test_dff %>%
filter(contbr_zip != c('9309')) %>%
filter(contbr_zip != c('3924')) %>%
filter(contbr_zip != c('2586'))
为什么这样的做法行不通?
test_dff %>%
filter(contbr_zip != c('9309','3924','2586'))
非常感谢您的帮助。
请提供可重复的数据集,还包括你想要的输出中。目前还不完全清楚你想要做什么。 – lmo
感谢您的留言,并抱歉没有提供更多信息。我从纽约州http://classic.fec.gov/disclosurep/pnational.do下载了美国总统竞选捐款(2016年)的数据集。我正在尝试清理所有非有效邮政编码的数据集。我想删除符合我的代码中提到的3列的特定行。 – Trgovec
也许你在'%in%'之后? –