使用R自动绘制图形和Anova

时间:2014-12-17 14:39:26

标签: r anova

我正在尝试使用R自动进行简单的图形分析和ANOVA分析。我知道我在这里没有治愈癌症,但我正在尝试用R读取CSV文件,每列都制作箱形图,最后根据组织类型对每列进行ANOVA分析。以下是我导入为allgenedata的输入数据:

Tissue  CRX OTX1
Adult Native    589.497 67.8812
Adult Native    553.367 74.7154
Adult Native    643.803 219.045
Adult Native    841.547 77.3731
Adult Native    587.122 155.827
ARPE-19 608.039 7.12757
ARPE-19 450.873 22.2396
ARPE-19 439.412 100.643
ARPE-19 443.038 94.8932
ARPE-19 373.148 68.9125
ARPE-19 447.053 32.9599
ARPE-19 548.943 34.6704
ARPE-19 541.505 41.2435
fetal RPE   605.409 23.3124
fetal RPE   606.874 97.7009
fetal RPE   735.176 68.0812
fetal RPE   946.355 97.5761
fetal RPE   636.287 17.0996
fetal RPE   551.927 48.1705
fetal RPE   499.641 49.6281
fetal RPE   559.901 99.4383
fetal RPE   526.228 119.276
fetal RPE   564.149 37.0931
fetal RPE   521.574 89.9984
fetal RPE   548.483 114.12
native fetal RPE    733.783 52.8845
native fetal RPE    751.961 38.0715
native fetal RPE    1061.66 8.80557
native fetal RPE    771.166 124.042
native fetal RPE    891.287 40.9265
native fetal RPE    901.234 5.3587

以下是我用于分析此数据的代码 -

genenames = names(allgenedata)
> for ( i in 2:length(genenames)){
+ temp = genenames[i]
+ print(temp)
+ boxplot(temp~Tissue, data=allgenedata)
+ temp.aov = aov(temp~Tissue, data=allgenedata)
+ TukeyHSD(temp.aov)
+ }

我得到一个错误说 - [1] "CRX" Error in model.frame.default(formula = temp ~ Tissue, data = allgenedata) : variable lengths differ (found for 'Tissue')

我不明白为什么我会收到这个错误。非常感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

您的问题是,当您尝试执行boxplot(temp~Tissue, data=allgenedata)之类的操作时,R会使用您创建的变量temp,而不是引用allgenedata中的该列。对于boxplotaov命令,只需将temp更改为allgenedata[,temp]即可确保R知道您所引用的内容。

另外,正如所写的那样,每次for循环运行时,你都会覆盖temp.aov并丢失Tukey测试。要保持每列的ANOVA和Tukey测试,您应该执行以下操作:

temp.aov=list()
tukey=list()
genenames = names(allgenedata)
for ( i in 2:length(genenames)){
  temp = genenames[i]
  boxplot(allgenedata[,temp]~Tissue, data=allgenedata)
  temp.aov[[i]] = aov(allgenedata[,temp]~Tissue, data=allgenedata)
  tukey[[i]]=TukeyHSD(temp.aov[[i]])
}
names(temp.aov)=genenames
names(tukey)=genenames

然后,要查看您的ANOVA表格,您可以使用sapply(temp.aov,summary)并查看您可以拨打tukey的Tukey测试。