放置dplyr&;ggplot in循环/应用

放置dplyr&;ggplot in循环/应用,r,ggplot2,dplyr,R,Ggplot2,Dplyr,我是R编程新手,正在尝试标准化或概括一段代码,以便将其应用于相同结构的不同数据导出。代码很简单,但我很难让它循环: 这是我的密码: plot <- data %>% group_by(Age, ID) %>% summarise(Rev = sum(TotalRevenue)) %>% ggplot(aes( x = AgeGroup, y = Rev, fill = AgeGroup )) + geom_col(alpha

我是R编程新手,正在尝试标准化或概括一段代码,以便将其应用于相同结构的不同数据导出。代码很简单,但我很难让它循环:

这是我的密码:

plot <- data %>% 
  group_by(Age, ID) %>% 
  summarise(Rev = sum(TotalRevenue)) %>%
  ggplot(aes(
    x = AgeGroup,
    y = Rev,
    fill = AgeGroup
  )) +
  geom_col(alpha = 0.9) +
  theme_minimal()
 
绘图%
组别(年龄,身份)%>%
总结(修订=总额(总收入))%>%
ggplot(aes)(
x=年龄组,
y=Rev,
填充=年龄组
)) +
几何坐标(α=0.9)+
主题_极小值()
我想对代码进行泛化,这样我就可以切换出“年龄”,并将变量放入列表中。这是我的业余代码:

cols <- c(data$Col1, data$Col2) #Im pretty sure this is wrong

for (i in cols) {

plot <- data %>% 
  group_by(i, ID) %>% 
  summarise(Rev = sum(TotalRevenue)) %>%
  ggplot(aes(
    x = AgeGroup,
    y = Rev,
    fill = AgeGroup
  )) +
  geom_col(alpha = 0.9) +
  theme_minimal()
}

cols%
总结(修订=总额(总收入))%>%
ggplot(aes)(
x=年龄组,
y=Rev,
填充=年龄组
)) +
几何坐标(α=0.9)+
主题_极小值()
}
这不管用。我将收到的数据集将具有相同的变量,只是不同的观察结果,因此标准化这个过程将是一个救命稻草


提前感谢。

您可能正在尝试:

library(dplyr)
library(rlang)

cols <- c('col1', 'col2')
plot_list <- lapply(cols, function(i) 
                  data %>% 
                   group_by(!!sym(i), ID) %>% 
                   summarise(Rev = sum(TotalRevenue)) %>%
                   ggplot(aes(x = AgeGroup,y = Rev,fill = AgeGroup))  +
                   geom_col(alpha = 0.9) + theme_minimal())
库(dplyr)
图书馆(rlang)
科尔斯%
总结(修订=总额(总收入))%>%
ggplot(aes(x=年龄组,y=版本,填充=年龄组))+
geom_col(alpha=0.9)+theme_minimal())

这将返回您可以访问的绘图列表,如
plot\u list[[1]]
plot\u list[[2]]
等。还可以查看面以组合多个绘图。

原始póster可能需要了解非标准评估,才能理解!!(发音为bang-bang)和sym()。嗨,Ronak,答案非常有效,我已经做了一些研究!!和sym()。非常感谢!