Начиная с введения оператора %>%
в пакете magrittr
(и он используется в dplyr
), я начал использовать его в своей собственной работе.
Одна простая операция меня настораживает. В частности, это извлечение (или подмножество) элементов из списка.
Пример: в базе R я использовал бы $
, [
или [[
для извлечения элемента из списка:
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, включая списки и матрицы, а не только кадры данных.