首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的for或foreach循环与Tukey的测试比较

R中的for或foreach循环与Tukey的测试比较
EN

Stack Overflow用户
提问于 2014-05-07 23:25:55
回答 1查看 513关注 0票数 0

下面是我的数据的一个示例:

代码语言:javascript
复制
metabolite  treatment area
x           A         1
x           B         2
x           C         3
y           A         4
y           B         5
y           C         6
z           A         7
z           B         8
z           C         9
x           A         12
x           B         22
x           C         32
y           A         42
y           B         52
y           C         62
z           A         72
z           B         82
z           C         92

对于每一种代谢物,我想测试治疗的平均面积是否不同。换言之:

代谢物X:A对B,A对C,B对C代谢物Y:A对B,A对C,B对C代谢物Z:A对B,A对C,B对C

我需要在R中执行Tukey‘Tukey (test),这将使每个治疗方法(A比B、A对C和C对B)成对比较。这是我想出来的,但不管用。

代码语言:javascript
复制
`for (i in levels(data$metabolite)) { 
tukey_part1 <- aov(data$area ~ data$treatment)
tukey_part2 <- TukeyHSD(x=tukey_part1, 'data$treatment', conf.level=0.95) 
                             } `

救命,拜托!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 00:53:13

实际上,您从未尝试使用正在循环的i变量。我继续并将for循环改为使用lapply。这个怎么样?

代码语言:javascript
复制
res<-lapply(levels(data$metabolite), function(i) {
    met<-data[data$metabolite==i, ]  #subset for metabolite i
    part1<-with(met, aov(area ~ treatment))
    print(part1)
    list( 
        part1 = part1,
        part2 = TukeyHSD(x=part1, 'treatment', conf.level=0.95)
    )
})
names(res)<-levels(data$metabolite)

这将给你一个或多个列表,其中包含了你要找的零件。例如,您可以使用res[[_metabolite_]][[_part_]]提取结果,例如.

代码语言:javascript
复制
res[["x"]][["part1"]]
res[["y"]][["part2"]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23530162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档