【发布时间】:2018-01-21 12:23:51
【问题描述】:
我正在尝试根据多列中的值删除数据集中的特定行。仅当满足所有 3 列中的条件时,才应删除行。
这是我的代码:
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'))
非常感谢您的帮助。
【问题讨论】:
-
请提供可重现的数据集,并包括您想要的输出。目前还不完全清楚您要做什么。
-
感谢您的留言,很抱歉没有预先提供更多信息。我从这里classic.fec.gov/disclosurep/pnational.do 为纽约州下载了关于美国总统竞选捐款(2016 年)的数据集。我正在尝试清理所有无效邮政编码的数据集。我想删除符合我代码中提到的 3 列条件的特定行。
-
也许你在关注
%in%?