选择矢量的所有元素,但dplyr管道中的元素除外

时间:2016-07-02 15:40:15

标签: r vector dplyr

我想选择一个角色向量的所有元素,除了一个与特定角色匹配的元素 我可以使用%in%轻松完成,但我不知道如何在dplyr管道中执行此操作。

例:
我想要的是什么

names<-c("a","b","c","d","e")
names[!names %in% "c"]
 [1] "a" "b" "d" "e"

我多么想要:

names<-c("a","b","c","d","e")
names %>% ...something...

1 个答案:

答案 0 :(得分:8)

如果没有重复项,我们可以使用setdiff

library(magrittr)
names %>% 
     setdiff(., "c")
#[1] "a" "b" "d" "e"

或者使用magrittr操作来对矢量进行子集化。

names %>%
   `%in%`("c") %>% 
   `!` %>%
    extract(names, .)
#[1] "a" "b" "d" "e"