Ответ 1
Обычный оператор трубопровода %>%
. Вы можете использовать %,%
для создания многоразового канала, без данных. Затем вы можете использовать один и тот же канал с различными наборами данных. Вот пример.
library(magrittr)
library(dplyr)
library(Lahman)
Предположим, вы хотите рассчитать верхние 5 бейсболистов, согласно общим хитам. Тогда вы можете сделать что-то вроде этого (взято из magrittr README):
Batting %>%
group_by(playerID) %>%
summarise(total = sum(G)) %>%
arrange(desc(total)) %>%
head(5)
# Source: local data frame [5 x 2]
#
# playerID total
# 1 rosepe01 3562
# 2 yastrca01 3308
# 3 aaronha01 3298
# 4 henderi01 3081
# 5 cobbty01 3035
Пока все хорошо. Теперь предположим, что у вас есть несколько наборов данных в том же формате, что и Batting
, поэтому вы можете просто повторно использовать один и тот же канал. %,%
помогает вам создавать, сохранять и повторно использовать канал:
top_total <- group_by(playerID) %,%
summarise(total = sum(G)) %,%
arrange(desc(total)) %,%
head(5)
top_total(Batting)
# Source: local data frame [5 x 2]
#
# playerID total
# 1 rosepe01 3562
# 2 yastrca01 3308
# 3 aaronha01 3298
# 4 henderi01 3081
# 5 cobbty01 3035
Конечно, вы также можете создать функцию регулярного R-способа, т.е. top_total <- function(...) ...
, но %,%
является более сжатым способом.