[英]how to use group_by in a function in R
我想在一個函數中使用group_by,以下是我的代碼,1,2運行良好,因此我創建了一個函數-3,而在4中卻不起作用。我不知道如何解決這個問題,所以尋求幫助。
#1生成變量和數據框
x <- rnorm(100)
y <- rep(c("A", "B"), 50)
df <- data.frame(y, x)
#2按y分組
df %>%
group_by(y) %>%
summarise(n = n(),
mean = mean(x),
sd = sd(x))
#3創建功能
group <- function(df, var1, var2){
df %>%
group_by(var1) %>%
summarise(n = n(),
mean = mean(var2),
sd = sd(var2))
}
#4測試功能
group(df = df, var1 = y, var2 = x)
#錯誤如下:
"Error in grouped_df_impl(data, unname(vars), drop) :
Column `var1` is unknown
Called from: grouped_df_impl(data, unname(vars), drop)",
你可以做:
library(dplyr)
group <- function(df, var1, var2){
var1 <- enquo(var1); var2 <- enquo(var2);
df %>%
group_by(!!var1) %>%
summarise(n = n(),
mean = mean(!!var2),
sd = sd(!!var2))
}
group(df = df, var1 = y, var2 = x)
### A tibble: 2 x 4
## y n mean sd
## <fct> <int> <dbl> <dbl>
##1 A 50 -0.133 0.866
##2 B 50 0.0770 0.976
有關更多參考,請檢查鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.