正常的管道操作员是%>%
。您可以使用%,%
创建一个可重复使用的管道,一个没有数据的管道。然后您可以使用同一个管道来处理不同的数据集。这是一个例子。
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(...) ...
, but %,%
是一种更简洁的方式。