a <- filter(mtcars, carb > 1)
b <- group_by(a, cyl)
c <- summarise(b, Avg_mpg = mean(mpg))
d <- arrange(c, desc(Avg_mpg))
print(d)
# A tibble: 3 x 2
cyl Avg_mpg
1 4 25.9
2 6 19.7
3 8 15.1
以这种方式对多个函数排序,您可能会保存多个对您或其他人来说信息不是很丰富的输出;相反,保存它们的唯一原因是将它们插入到下一个函数中,从而最终得到您想要的最终输出。这不可避免地会产生不必要的副本,并破坏正确管理对象。
为了提供相同的可读性(甚至更好),我们可以使用%>%将这些参数串在一起,而不需要创建不必要的对象…
library(magrittr)
library(dplyr)
mtcars %>%
filter(carb > 1) %>%
group_by(cyl) %>%
summarise(Avg_mpg = mean(mpg)) %>%
arrange(desc(Avg_mpg))
# A tibble: 3 x 2
cyl Avg_mpg
1 4 25.9
2 6 19.7
3 8 15.1
%>%操作符,使得代码更高效、更清晰,您可以像阅读普通散文一样阅读它(我们将%>%读为“然后”):“取mtcars,然后 filter ,然后 group by ,然后 summarize ,然后 arrange 。”直观一点的展示:
(iris %>% head)$Sepal.Width %>% mean
> (iris %>% head)$Sepal.Width
[1] 3.5 3.0 3.2 3.1 3.6 3.9
> (iris %>% head)$Sepal.Width %>% mean
[1] 3.383333
引用内容来自http://www.geocalculate.com/4658.html