2017-06-07 4 views
0

En R, je veux faire un test statistique pour comparer les moyennes entre deux catégories, mais je ne sais pas comment organiser mes données pour le faire.Je veux lancer un test t, comment dois-je organiser mes données pour le faire?

exemple Mock

Mes données sont organisées comme:

structure(list(age = c(39, 45, 83, 68, 48, 52, 66, 50, 61, 67), gender = 
structure(c(2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L), .Label = c("female", 
"male"), class = "factor")), .Names = c("age", "gender"), row.names = c(NA, 
10L), class = "data.frame") 

Ce que je veux faire est de comparer la moyenne de chaque sexe avec un test t Welch, répondant à la question « des femmes les âges sont significativement différents de l'âge des hommes? ".

En théorie, pour exécuter le test, je pense que mes données devraient être sous la forme:

male female 
39 45 
83 61 
... 

Je suis sûr qu'il est soit un moyen d'exécuter le test directement sur la table d'origine ou un moyen facile pour transformer mes données dans cette forme ...

Alors, comment dois-je procéder?

+0

Avez-vous le même nombre de femmes et d'hommes dans votre cadre de données d'origine? – Masoud

+0

Non. Et j'ai vraiment beaucoup de variables catégoriques que je veux comparer avec l'âge (pas nécessairement binaire comme le genre) – francoiskroll

+0

Votre titre sur le regroupement de données et de poser des questions à ce sujet est trompeur. C'est un peu un [problème XY] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Je suggère de se concentrer sur le test t et comment l'exécuter. – Masoud

Répondre

2

Si df est votre ensemble de données, vous peut faire

t.test(age ~ gender, data=df, alternative='two.sided') 

et il n'y a pas besoin de réorganiser les données.

1

j'aller avec la jolie data.table: en supposant dt est un data.table (dt<-data.table(dataBase), qui est):

library(stats) 
library(data.table) 

dt[,t.test(age),by=gender] 

résultat:

gender statistic parameter  p.value conf.int estimate null.value alternative   method data.name 
1: male 11.73781   7 7.373447e-06 47.21406 59.125   0 two.sided One Sample t-test  age 
2: male 11.73781   7 7.373447e-06 71.03594 59.125   0 two.sided One Sample t-test  age 
3: female 6.62500   1 9.537357e-02 -48.64964 53.000   0 two.sided One Sample t-test  age 
4: female 6.62500   1 9.537357e-02 154.64964 53.000   0 two.sided One Sample t-test  age