magrittr 的 Github 开发版本包括一些很酷的管道新功能,但我没有完全理解 %>%
之间的区别。和 %,%
.这只是正式的 %>%
对于值(value)和 %,%
对于功能,还是有一些特定的特性?
最佳答案
正常的管道运算符(operator)是 %>%
.您可以使用 %,%
创建一个可重用的管道,一个没有数据的管道。然后,您可以对各种数据集使用相同的管道。这是一个例子。
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(...) ...
,但是 %,%
是一种更简洁的方式。
关于r - magrittr 中的 %>% 和 %,% 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211465/