【发布时间】:2017-10-20 16:27:12
【问题描述】:
我编写了一个循环,在其中迭代给定 .csv 的列并运行 anova 和 posthoc 测试。然后,我将每个结果合并到一个数据框中,并将其导出到一个 .csv 文件。但是,我无法让 rbind() 构建我的 data.frame。对此有什么帮助吗?这是脚本:
setwd("~/School/Lab/mice/sugar_study_2015/MG-RAST and Metagenassist/Trimmed/R. CSV")
#Save your Datasheet into variable X
x <- read.csv("T0_B_Class_Anova.csv")
x = x[1:9,]
x[is.na(x)] <- 0
DF.Anova <- data.frame()
DF.Tukey <- data.frame()
#Counts through the columns
for(i in 2:(ncol(x)-1)){
columns <- names(x[i])
##Runs an ANOVA - 'Group' being a grouping factor
anovaresult <- anova(aov(x[,i]~Group,data=x))
DF.Anova <- rbind(DF.Anova, anovaresult)
##fix anova into data frame
Famall = colnames(x)
Famall = as.data.frame(Famall)
Famall = Famall[2:83,]
Famall = as.data.frame(Famall)
DFanovanames = rep(Famall, each = 2)
DFanovanames = as.data.frame(DFanovanames)
#install.packages("tidyr")
library(tidyr)
anovanames = data.frame(Names=unlist(DFanovanames, use.names = FALSE))
o.anovanames = dplyr::arrange(anovanames, Names)
###dont forget to change this**************************
finalanova_BFT0 = cbind(rn = rownames(DF.Anova), DF.Anova, o.anovanames)
##Runs Tukeys Post-hoc test on Anova
posthocresult <- TukeyHSD(aov(x[,i]~Group,data=x))
DF.Tukey <- rbind(DF.Tukey, posthocresult$Group)
##fix tukey into data frame
Famname = colnames(x)
Famname = as.data.frame(Famname)
Famname = Famname[2:83,]
Famname = as.data.frame(Famname)
DFposthocnames = rep(Famname, each = 3)
DFposthocnames = data.frame(DFposthocnames)
#install.packages("tidyr")
library(tidyr)
library(dplyr)
posthocnames = data.frame(Names=unlist(DFposthocnames, use.names = FALSE))
o.posthocnames = dplyr::arrange(posthocnames, Names)
###dont forget to change this****************************
finalposthoc_BFT0 = cbind(rn = rownames(DF.Tukey), DF.Tukey, o.posthocnames)
##Prints posthoc results into txt file
print(columns)
print(anovaresult)
print(posthocresult)
}
write.csv(finalanova_BFT0, file="testfinalanova_BCT0")
write.csv(finalposthoc_BFT0, file="finalposthoc_BCT0")
您可以找到示例 .csv here
【问题讨论】:
-
您确定您的数据被正确读取了吗?你的
setwd电话看起来不正确 -
如果您提供minimal reproducible example 而不是链接到数据,会更容易回答您的问题。
-
我已编辑数据集以包含 3 列。我不想从脚本中删除任何内容,因为我不确定哪里出了问题。我盯着这个东西看了一两个小时,还是搞不清楚。