提取子集提取
问题描述:
想象一下,我有矢量,我想删除一个特定的元素。我可以做到以下几点提取子集提取
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"