我正在嘗試編寫一個函數,該函數可以通過在數據框中跨多個因素進行分組來生成描述性統計信息。我花了太多時間試圖讓功能識別我選擇的變量。在R中編寫一個函數,以便根據數據幀中的變量列進行分組
這裏是假的數據:
grouping1 <- c("red", "blue", "blue", "green", "red", "blue", "red", "green")
grouping2 <- c("high", "high", "low", "medium", "low", "high", "medium", "high")
value <- c(22,40,72,41,36,16,88,99)
fake_df <- data.frame(grouping1, grouping2, value)
假的代碼示例:
library(dplyr)
by_group_fun <- function(fun.data.in, fun.grouping.factor){
fake_df2 <- fun.data.in %>%
group_by(fun.grouping.factor) %>%
summarize(mean = mean(value), median = median(value))
fake_df2
}
by_group_fun(fake_df, grouping1)
by_group_fun(fake_df, grouping2)
這給了我:
Error in grouped_df_impl(data, unname(vars), drop) : Column `fun.grouping.factor` is unknown
第二次嘗試
我試着將函數中選擇的變量賦值給一個新的變量並進行轉發。
假的代碼示例(第二次嘗試):
by_group_fun2 <- function(fun.data.in, fun.grouping.factor){
fun.data.in$by_var <- fun.data.in$fun.grouping.factor
fake_df2 <- fun.data.in %>%
group_by(by_var) %>%
summarize(mean = mean(value), median = median(value))
fake_df2
}
by_group_fun2(fake_df, grouping1)
by_group_fun2(fake_df, grouping2)
此,第二次嘗試,給了我:
Error in grouped_df_impl(data, unname(vars), drop) : Column `by_var` is unknown
看到這個學習如何用'dplyr'編程:HTTPS: //cran.r-project.org/web/packages/dplyr/vignettes/programming.html – www