kruskal测试行和列作为因素

时间:2013-11-22 09:33:56

标签: r statistics

我想我需要一些特定于R的统计数据帮助。 下面是我的“实验设计表”。 我想测试在FamilyF vs all和FamilyG与所有条件的条件下,类型X与type_norm的基因的'得分'分布是否不同。

这是我的'实验设计':

    FamilyF FamilyF FamilyG FamilyG
gene_type   gene    conditionA  conditionB  conditionC  conditionD
typeX   gene1   1   2   3   4
typeX   gene2   0.1 0.2 0.3 0.4 
typeX   gene3   -1  -2  -3  -4
norm    gene4   10  20  30  40
norm    gene5   1   2   3   4
norm    gene6   0.1 0.2 0.3 0.4

在使用kruskal测试等方法测试不同条件下基因之间的分布差异之前,我之前没有进行过分析。

将数据重新排列为:

gene    gene1   gene2   gene3   gene4   gene5   gene6   Family
conditionA  1   0.1 -1  10  1   0.1 F
conditionB  2   0.2 -2  20  2   0.2 F
conditionC  3   0.3 -3  30  3   0.3 G
conditionD  4   0.4 -4  40  4   0.4 G

然后我为列gene1-gene6和条件的不同元数据列做了一个循环,并进行了kruskal测试,如下所示。

kt<-kruskal.test(df.plsMD[,"gene1"]~df.plsMD[,"Family"])

但我不确定如何使用行和列来执行类似的操作。

任何帮助都将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你不能在一次分析中这样做。您必须为不同的基因分配数据框,如下所示:

df.gene1 <- subset(df, gene = "gene1")
df.gene2 <- subset(df, gene = "gene2")
....

之后,您可以使用Kruskal测试:

kruskal.test(conditionA ~ gene_type, data = df.gene1)

如果这给出了显着的结果,您可以检查出现差异的位置:

df.gene1$Ranks.gene_type <- rank(sophdata$conditionA)
by(df.gene1$Ranks.gene_type, df.gene1$gene_type, mean)
kruskalmc(conditionA ~ gene_type, data = df.gene1)