我从未真正充分利用过的ggplot2
包中的一个非常酷的功能是在绘图中添加图层列表。有趣的是,我可以将图层列表作为函数的参数传递,并将其添加到绘图中。然后,我可以得到所需的图形外观,而不必从函数中返回图形(这是否是个好主意是另一回事,但有可能)。
library(ggplot2)
x <- ggplot(mtcars,
aes(x = qsec,
y = mpg))
layers <- list(geom_point(),
geom_line(),
xlab("Quarter Mile Time"),
ylab("Fuel Efficiency"))
x + layers
有没有办法用管道做到这一点?类似于:
#* Obviously isn't going to work
library(dplyr)
action <- list(group_by(am, gear),
summarise(mean = mean(mpg),
sd = sd(mpg)))
mtcars %>% action
最佳答案
要构建一系列的magrittr步骤,请从.
开始
action = . %>% group_by(am, gear) %>% summarise(mean = mean(mpg), sd = sd(mpg))
然后就可以像在OP中想象的那样使用它:
mtcars %>% action
就像
list
一样,我们可以子集化来查看每个步骤:action[[1]]
# function (.)
# group_by(., am, gear)
要查看所有步骤,请使用
functions(action)
或仅输入名称:action
# Functional sequence with the following components:
#
# 1. group_by(., am, gear)
# 2. summarise(., mean = mean(mpg), sd = sd(mpg))
#
# Use 'functions' to extract the individual functions.
关于r - 有办法 `pipe through a list'吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33574610/