提取子集提取

提取子集提取

问题描述:

想象一下,我有矢量,我想删除一个特定的元素。我可以做到以下几点提取子集提取

library(magrittr) 

foo <- LETTERS[1:10] 

foo %>% 
{ 
    bar <- . 

    bar %>% 
    extract(bar %>% 
       equals("A") %>% 
       not) 
} 


[1] "B" "C" "D" "E" "F" "G" "H" "I" "J" 

但是,如果我想成为更简洁,这一点:

foo %>% 
    extract(. %>% 
      equals("A") %>% 
      not) 

不起作用:

Error in extract(., . %>% equals("A") %>% not) : 
    invalid subscript type 'closure' 

是不是有更多的地道的magrittr'的方式来做到这一点?

一种选择是将管foo到子集功能[,限制到做元件不等于A,使用!=

foo %>% "["(. != "A") 
# [1] "B" "C" "D" "E" "F" "G" "H" "I" "J" 

magrittr包已经混叠[extract,所以这是等效于:

foo %>% extract(. != "A") 
# [1] "B" "C" "D" "E" "F" "G" "H" "I" "J"