J'essaye d'écrire une fonction qui me permettra de produire des statistiques descriptives en regroupant plusieurs facteurs dans une trame de données. J'ai passé beaucoup trop d'heures à essayer de faire reconnaître ma fonction par les variables que je sélectionne.Ecriture d'une fonction dans R pour grouper par colonne de variables d'une trame de données
Voici les données faux:
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)
exemple de code faux:
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)
Cela me donne:
Error in grouped_df_impl(data, unname(vars), drop) : Column `fun.grouping.factor` is unknown
Deuxième essai
J'ai essayé d'affecter la variable by sélectionnée dans la fonction à une nouvelle variable et de la reporter.
exemple de code faux (deuxième essai):
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)
Cette deuxième essai, me donne:
Error in grouped_df_impl(data, unname(vars), drop) : Column `by_var` is unknown
voir pour apprendre comment programmer avec 'dplyr': https: //cran.r-project.org/web/packages/dplyr/vignettes/programming.html – www