Comment effectuer un test t multifactoriel pour toutes les paires de groupes possibles avec un nombre minimal de lignes de codage.ddply multifactoriel tous les t-tests par paires
Mon exemple:
3x Caractéristiques: 1,2,3
4x groupes: A, B, C, D
But: Pour chaque test de fonction toutes les paires de groupes:
1 (AB, AC, AD, BC, BD, CD)
2 (AB, AC, AD, BC, BD, CD)
3 (AB, AC, AD, BC, BD, CD) = 18 T- En ce moment j'utilise ddply et à l'intérieur
lapply:
library(plyr)
groupVector <- c(rep("A",10),rep("B",10),rep("C",10),rep("D",10))
featureVector <- rep(1:3,each=40)
mydata <- data.frame(feature=factorVector,group=groupVector,value=rnorm(120,0,1))
ddply(mydata,.(feature),function(x){
grid <- combn(unique(x$group),2, simplify = FALSE)
df <- lapply(grid,function(p){
sub <- subset(x,group %in% p)
pval <- t.test(sub$value ~ sub$group)$p.value
data.frame(groupA=p[1],groupB=p[2],pval=pval)
})
res <- do.call("rbind",df)
return(res)
})