r - 将函数应用于 dplyr 的 group_by 的输出

标签 r ggplot2 dplyr

我想对一个大型数据框进行子集化,并为每个分组创建一个 ggplot。听起来像是 dplyr 的完美候选者,但我在调用 group_by 结果上的函数时遇到了问题。任何提示将不胜感激。

# what I want to do using base functions: "groupby" the elements in a column 
# and create/save a plot for each group
for (i in levels(iris$Species)){
  df = iris[iris$Species == i,]
  p <- ggplot(df, aes(x=Sepal.Length, y=Sepal.Width) + geom_point())
  ggsave(p, filename=paste(i,".pdf",sep=""))
}

# I'm trying to get something like this using dplyr
library(dplyr)
iris %>%
  group_by(Species) %>%
  do({
      p <- ggplot(., aes(x=Sepal.Length, y=Sepal.Width) + geom_point())
      ggsave(p, filename=paste(quote(Species),".pdf",sep=""))
     })

最佳答案

嗯,你有一个括号问题和一个文件命名问题,所以也许它是你所指的问题之一。我假设

iris %>%
  group_by(Species) %>%
  do({
      p <- ggplot(., aes(x=Sepal.Length, y=Sepal.Width)) + geom_point()
      ggsave(p, filename=paste0(unique(.$Species),".pdf"))
     })

会解决你的问题。

关于r - 将函数应用于 dplyr 的 group_by 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556707/

相关文章:

r - 使用 coord_fixed 进行多图布局

r - 对组学/生物统计学中的重复数据进行平均

r - ggplot : Adding horizontal lines to each bar + repositioning tick labels

r - 在 ggplot 中制作带有 x 轴垂直标签的条形图

当参数是 dplyr 中的字符串时,将 group_by_ 替换为 group_by

r - 错误 : Must supply a symbol or a string as argument

r - 计算 dplyr 中组比例的置信区间

c++ - 哪个模式在矩阵中出现最多-R(更新)

r - ggplot2:如何绘制正交回归线?

r - 对具有特定条件的特定行求和