Since the introduction of the %>% operator in the magrittr package (and it's use in dplyr), I have started to use this in my own work.
One simple operation has me stumped, however. Specifically, this is the extraction (or subsetting) of elements from a list.
An example: In base R I would use $, [ or [[ to extract an element from a list:
iris$Species iris[["Species"]] I can achieve the same using the %>% pipe:
iris %>% subset(select = "Species") %>% head Species 1 setosa 2 setosa 3 setosa 4 setosa 5 setosa 6 setosa Or
iris %>% `[[`("Species") %>% levels [1] "setosa" "versicolor" "virginica" However, this feels like a messy, clunky solution.
Is there a more elegant, canonical way to extract an element from a list using the %>% pipe?
Note: I don't want any solution involving dplyr, for the simple reason that I want the solution to work with any R object, including lists and matrices, not just data frames.