R: test-t sur toutes les colonnes
J'ai essayé de faire le test t de toutes les colonnes (deux à la fois) de mon bloc de données, et d'en extraire uniquement la p-valeur. Voici ce que je suis venu avec:
for (i in c(5:525) ) {
t_test_p.value =sapply( Data[5:525], function(x) t.test(Data[,i],x, na.rm=TRUE)$p.value)
}
Mes questions sont les suivantes:
1. est-il un moyen de le faire sans une boucle?
2. comment faire pour capturer les résultats du t-test.
OriginalL'auteur ery | 2012-03-12
Vous devez vous connecter pour publier un commentaire.
Essayer celui-ci
Aussi viens de réaliser, si vous voulez que toutes les paires de combinaisons, puis MYaseen208 réponse vous montre également comment utiliser combn()
Merci, cela fonctionne comme un charme. J'ai une question de suivi: stackoverflow.com/q/9669411/612191
OriginalL'auteur MYaseen208
Je le recommande pour convertir votre bloc de données à long format et l'utilisation
pairwise.t.test
appropriésp.adjust
:OriginalL'auteur kohske
Voici une autre solution, avec
outer
.OriginalL'auteur Vincent Zoonekynd
En supposant que votre bloc de données ressemble à quelque chose comme ceci:
les suivantes
vous donnera des tests pour chaque ensemble de colonnes. Notez que cela ne fera que vous donner une t.test pour un & b, c & d, et e & f.
si vous voulais un & b, b & c, c & d, d & e, et e & f, alors que vous auriez à faire:
enfin si, disons que vous voulez seulement les valeurs de P à partir de vos tests, vous pouvez le faire:
Si vous n'êtes pas sûr de la façon de travailler avec un objet, essayez de taper le résumé(tests) et str(tests de[[1]]) - dans ce cas test est une liste de htest objets, et vous voulez connaître la structure de la htest objet, pas nécessairement de la liste.
Espère que cela a aidé!
OriginalL'auteur Davy Kavanagh
Je l'exécute:
Il m'a fallu un certain temps à la divine "vapply" astuce pour tirer le pvals de la t.résultat du test de la liste d'objets. (J'ai édité ce à partir de 'sapply" parce que Henrik commentaire ci-dessous)
Si c'est un test t apparié, il vous suffit de soustraire et de test pour les moyens=0, ce qui donne exactement le même résultat (c'est tout un t apparié.test):
Un par rangée de t-test sur toutes les colonnes.
sapply
, utilisezvapply
. vous n'avez pas besoin de launlist
et il vous donnera un message d'erreur si les données ne sont pas comme prévu. En outre, vous pouvez utiliser"[["
. Donc, je le ferais:vapply(tres, "[[", 0, i = "p.value")
(le0
indique juste que le numérique doit être retourné)OriginalL'auteur Erik Aronesty