dplyr 中的过滤不完整....为什么?
Incomplete filtering in dplyr....why?
下面我包含了我的数据子集和一些 dplyr
代码。 AA
filter
语句按预期工作。但是,BB
filter
语句无法删除 Filter.taxa
中指定的所有组。任何想法为什么会发生这种情况以及可能的修复方法?我已经确保整个数据集中的拼写和间距一致。
已提供 BB
所需的结果。
我知道我可以为 Filter.taxa
中的每个组在 BB
中编写单独的 filter
语句,但这很麻烦。我将从众多数据集中过滤不同的组,并希望在一行代码中指定要过滤的组。
提前致谢。
DATE SAMPLE TAXA GENUS 1
6/30/2013 Aqu-Pool-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-4 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-4 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-4 51 Rhyacophila_nocoh 5
11/6/2013 Aqu-Pool-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-4 164 Polycentropodidae 1000
Filter.taxa = c("Rhyacophila_nocoh", "Arctopsyche_3")
AA = filter(GENUS %in% Filter.taxa)
BB = filter(GENUS != Filter.taxa)
BB
的预期结果:
DATE SAMPLE TAXA GENUS 1
11/6/2013 Aqu-Pool-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-4 164 Polycentropodidae 1000
对多个元素使用%in%
,然后取反(!
)。 !=
可以像 ==
一样用于单个元素
filter(df, !GENUS %in% Filter.taxa)
下面我包含了我的数据子集和一些 dplyr
代码。 AA
filter
语句按预期工作。但是,BB
filter
语句无法删除 Filter.taxa
中指定的所有组。任何想法为什么会发生这种情况以及可能的修复方法?我已经确保整个数据集中的拼写和间距一致。
已提供 BB
所需的结果。
我知道我可以为 Filter.taxa
中的每个组在 BB
中编写单独的 filter
语句,但这很麻烦。我将从众多数据集中过滤不同的组,并希望在一行代码中指定要过滤的组。
提前致谢。
DATE SAMPLE TAXA GENUS 1
6/30/2013 Aqu-Pool-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Pool-4 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Riff-4 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-1 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-2 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-3 51 Rhyacophila_nocoh 5
6/30/2013 Aqu-Wood-4 51 Rhyacophila_nocoh 5
11/6/2013 Aqu-Pool-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Riff-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-1 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-2 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-3 43 Arctopsyche_3 10
11/6/2013 Aqu-Wood-4 43 Arctopsyche_3 10
11/6/2013 Aqu-Pool-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-4 164 Polycentropodidae 1000
Filter.taxa = c("Rhyacophila_nocoh", "Arctopsyche_3")
AA = filter(GENUS %in% Filter.taxa)
BB = filter(GENUS != Filter.taxa)
BB
的预期结果:
DATE SAMPLE TAXA GENUS 1
11/6/2013 Aqu-Pool-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Pool-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Riff-4 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-1 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-2 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-3 164 Polycentropodidae 1000
11/6/2013 Aqu-Wood-4 164 Polycentropodidae 1000
对多个元素使用%in%
,然后取反(!
)。 !=
可以像 ==
filter(df, !GENUS %in% Filter.taxa)