我正在尝试使用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')
我不明白为什么我会收到这个错误。非常感谢您的任何帮助。
答案 0 :(得分:0)
您的问题是,当您尝试执行boxplot(temp~Tissue, data=allgenedata)
之类的操作时,R会使用您创建的变量temp
,而不是引用allgenedata
中的该列。对于boxplot
和aov
命令,只需将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测试。