R 将多个TukeyHSD测试循环到一个表中?
我有多个类似于下面的csv文件R 将多个TukeyHSD测试循环到一个表中?,r,loops,anova,tukey,R,Loops,Anova,Tukey,我有多个类似于下面的csv文件 Library Parameter1 A 3 A 2 A 5 B 2 B 1 B 9 C 4 C 2 C 8 它实际上是这样的: 在本例中,每个.csv文件都以化学参数命名,例如“logtPSA.csv”。您可以看到的标题是“Library”和“Value”。我有4个不同的库:FDA、SMMRNA、VD_SM和VD_MV 我一直在对所有的数据进行方差分析测
Library Parameter1
A 3
A 2
A 5
B 2
B 1
B 9
C 4
C 2
C 8
它实际上是这样的:
在本例中,每个.csv文件都以化学参数命名,例如“logtPSA.csv”。您可以看到的标题是“Library”和“Value”。我有4个不同的库:FDA、SMMRNA、VD_SM和VD_MV
我一直在对所有的数据进行方差分析测试和TukeyHSD测试,但R没有将结果分成单元格,所以我可以直接复制并粘贴到Excel中,因此如果我手工操作,它会变得非常乏味
我想知道是否有什么方法可以编写一个函数,一次遍历我的所有文件,执行测试,并将其全部输出到两个整洁的表中(1个用于ANOVA,1个用于TukeyHSD) 有多种方法可以做到这一点,这只是其中之一: 导入所有数据文件 这是一个可能的例子 将结果放入数据框
你好,谢谢你的回答。在我想不出如何替换一些东西来让它特别适合我之前,我已经了解了你答案的第一部分。我用更具体的信息更新了我的问题,所以我希望你能多帮我一点忙?当然,我可以提供任何必要的补充信息。我对R还是很陌生,所以我不确定我是否以合理有效的方式命名了所有的文件和标题。非常感谢。
setwd("C:/Users/VANBE/Desktop")
files = dir(".", pattern = ".csv")
files.dir = paste(getwd(),"/" ,files,sep="")
load = lapply(files.dir, read.csv2,header=T,sep=",",dec=".")
names(load)=unlist(strsplit(files,".csv")) # not truly necesary
load = list(FILENAME1=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtPSA=rnorm(1.5,1,24)),
FILENAME2=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtELSE=rnorm(2,1,24)))
load= lapply(load, function(x) {names(x) = c("number","library","parameter"); return(x) }) # make sure columnnames of al items are identical
f.AN = function(x){out=aov(parameter ~ library,x)
AN=summary(out)[[1]]}
f.TU = function(x){out=aov(parameter ~ library,x)
TU=TukeyHSD(out)[[1]]}
AN = do.call("rbind",lapply(load,f.AN))
TU = do.call("rbind",lapply(load,f.TU))