Avec un ensemble de données fictives :
Species Var1 Var2 Var3
a 1 2 3
a 4 5 6
b 7 8 9
b 10 11 12
J'ai plusieurs espèces et environ 50 variables (Var50). Je voudrais effectuer une Anova à une voie sur la variable de regroupement appariée (Espèce) pour chaque variable de réponse et obtenir le résultat des fréquences qui sont statistiquement significatives à l'IC de 95 %, par exemple. J'ai commencé à écrire une fonction pour faire cela comme suit :
data<-read.table("example.txt", header=T, sep="\t")
function(y){
for(y in 2:50)
anova.r<-aov(y~Species, data = data)
result<-TukeyHSD(anova.r, conf.level = 0.95)
f.result ## I cannot figure out how to extract the "p adj" from the results
f.result<-sum(prob.result>=0.05)
write.table(f.result, file = "anova95.csv", sep = ",",
col.names = FALSE, append=TRUE)
}
En fin de compte, je voudrais que le tableau final (réponses fictives) ressemble à ceci
Var1 Var2 Var3......Var50
Frequency at 95% CI 106 200 45 246
Je sais que je peux utiliser [[]]
pour accéder aux données dans les résultats du test de Tukey. J'ai essayé d'utiliser tukey.results[[1]][,1]
jusqu'à tukey.results[[1]][,3]
en vain. tukey.results[[1]]
renvoie toutes les colonnes du test de Tukey.
De plus, je pense que je pourrais avoir à utiliser cbind
quelque part dans la fonction pour obtenir les données dans leurs colonnes respectives. Ou bien je pensais qu'il serait possible d'utiliser la fonction apply
mais je ne sais pas comment garder la variable de regroupement constante tout en faisant varier la variable de réponse à chaque itération.
Toute suggestion serait profondément appréciée.