自从在包中引入%>%
操作符magrittr
(并且在 中使用dplyr
),我已经开始在自己的工作中使用它。
然而,一个简单的操作让我难住了。具体来说,这是从列表中提取(或子集)元素。
一个例子:在基础 RI 中将使用$
,[
或[[
从列表中提取一个元素:
iris$Species
iris[["Species"]]
我可以使用%>%
管道实现相同的目的:
iris %>%
subset(select = "Species") %>%
head
Species
1 setosa
2 setosa
3 setosa
4 setosa
5 setosa
6 setosa
或者
iris %>%
`[[`("Species") %>%
levels
[1] "setosa" "versicolor" "virginica"
然而,这感觉像是一个混乱、笨拙的解决方案。
有没有更优雅、更规范的方法来使用%>%
管道从列表中提取元素?
注意:我不想要任何涉及 的解决方案dplyr
,原因很简单,我希望该解决方案适用于任何 R 对象,包括列表和矩阵,而不仅仅是数据框。