创建包含dplyr和ggplot的R函数

创建包含dplyr和ggplot的R函数,r,ggplot2,dplyr,R,Ggplot2,Dplyr,我正在尝试构建一个包含dplyr和ggplot的R函数,但不断出现错误。我已经考虑过其他解决方案,但似乎无法使其适合我的 我已经使用iris数据集复制了我的问题 没有函数,如下所示: cat_dat <- iris %>% group_by(Species) %>% summarise(mean=mean(Sepal.Length)) bar_num <- ggplot(cat_dat, aes(x=Species, y=mean)) +

我正在尝试构建一个包含dplyr和ggplot的R函数,但不断出现错误。我已经考虑过其他解决方案,但似乎无法使其适合我的

我已经使用iris数据集复制了我的问题

没有函数,如下所示:

cat_dat <- iris %>%
     group_by(Species) %>%
     summarise(mean=mean(Sepal.Length)) 

bar_num <- ggplot(cat_dat, aes(x=Species, y=mean)) +
     geom_bar(stat='identity')

bar_num
cat_dat%
组别(种类)%>%
总结(平均值=平均值(萼片长度))

bar_num我们可以使用
.data
代词:

library(dplyr)

bar_viz <- function(data, grp_var, var) {

  cat_dat <- iris %>%
    group_by(.data[[grp_var]]) %>%
    summarise(mean=mean(.data[[var]])) 
  
  bar_num <- ggplot(cat_dat, aes(x= .data[[grp_var]], y=mean)) +
    geom_bar(stat='identity')
  return(bar_num)
}

# Call function

bar_viz(iris, "Species", "Sepal.Length")
库(dplyr)
bar_viz%
总结(平均值=平均值(.data[[var]]))
巴数
library(dplyr)

bar_viz <- function(data, grp_var, var) {

  cat_dat <- iris %>%
    group_by(.data[[grp_var]]) %>%
    summarise(mean=mean(.data[[var]])) 
  
  bar_num <- ggplot(cat_dat, aes(x= .data[[grp_var]], y=mean)) +
    geom_bar(stat='identity')
  return(bar_num)
}

# Call function

bar_viz(iris, "Species", "Sepal.Length")