我经常使用 d_ply 来绘制探索图。
一个简单的例子:
require(plyr)
plot_species <- function(species_data){
p <- qplot(data=species_data,
x=Sepal.Length,
y=Sepal.Width)
print(p)
}
d_ply(.data=iris,
.variables="Species",
function(x)plot_species(x))
它产生三个独立的地块,每个地块对应一个物种。
我想使用 dplyr 中的函数重现此行为。
这似乎需要在 summarise 调用的函数内重新组装 data.frame,这通常是不切实际的。
require(dplyr)
iris_by_species <- group_by(iris,Species)
plot_species <- function(Sepal.Length,Sepal.Width){
species_data <- data.frame(Sepal.Length,Sepal.Width)
p <- qplot(data=species_data,
x=Sepal.Length,
y=Sepal.Width)
print(p)
}
summarise(iris_by_species, plot_species(Sepal.Length,Sepal.Width))
data.frame 的部分内容可以直接传递给 summarize 调用的函数,而不是传递列吗?
我相信你可以与do
对于此任务,具有与您使用的相同的功能d_ply
。它将直接打印到绘图窗口,但也会将绘图保存为list
在由此产生的data.frame
如果您使用命名参数(请参阅帮助页面,这本质上就像使用dlply
)。我没有完全理解这一切do
可以,但如果我不使用命名参数,我会收到一条错误消息,但绘图仍然打印到绘图窗口(在 RStudio 中)。
plot_species <- function(species_data){
p <- qplot(data=species_data,
x=Sepal.Length,
y=Sepal.Width)
print(p)
}
group_by(iris, Species) %>%
do(plot = plot_species(.))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)