J'aimerais effectuer un test KW sur certaines variables numériques d'une base de données, en utilisant une variable de regroupement. Je préférerais faire cela dans une boucle, plutôt que de taper tous les tests, car il y a beaucoup de variables (plus que dans l'exemple ci-dessous).
Données simulées :
library(dplyr)
set.seed(123)
Data <- tbl_df(
data.frame(
muttype = as.factor(rep(c("missense", "frameshift", "nonsense"), each = 80)),
ados.tsc = runif(240, 0, 10),
ados.sa = runif(240, 0, 10),
ados.rrb = runif(240, 0, 10))
) %>%
group_by(muttype)
ados.sim <- as.data.frame(Data)
Le code suivant fonctionne parfaitement en dehors de la boucle.
kruskal.test(formula (paste((colnames(ados.sim)[2]), "~ muttype")), data =
ados.sim)
Mais ce n'est pas le cas à l'intérieur de la boucle :
for(i in names(ados.sim[,2:4])){
ados.mtp <- kruskal.test(formula (paste((colnames(ados.sim)[i]), "~ muttype")),
data = ados.sim)
}
J'obtiens l'erreur suivante :
Erreur dans terms.formula(formula, data = data) : terme non valide dans la formule du modèle
Quelqu'un sait-il comment résoudre ce problème ? Merci beaucoup !