首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在一个data.frame中运行多个t.test?

如何在一个data.frame中运行多个t.test?
EN

Stack Overflow用户
提问于 2017-10-14 15:09:42
回答 1查看 1.1K关注 0票数 0

我有一个数据,

代码语言:javascript
运行
复制
temp_data <- as.data.frame(matrix(rbinom(9*9, 1, 0.5), ncol=9, nrow =9))
colnames(temp_data) <- paste(rep(c("a","b","c"), each=3), rep(c(1,2,3), 3), sep = "")

我想对data.frame的因子运行多个t.test,并获得一个显示以下内容的输出文件

代码语言:javascript
运行
复制
     factor.1 factor.2 p.value   
[1,] "a1"     "c1"     "value 1 "
[2,] "a2"     "c2"     "value 2 "
[3,] "a3"     "c3"     "value 3 "
[4,] "b1"     "c1"     "value 4 "
[5,] "b2"     "c2"     "value 5 "
[6,] "b3"     "c3"     "value 6 "

我怎样才能得到这个结果呢?

EN

回答 1

Stack Overflow用户

发布于 2017-10-14 18:25:46

你可以这样做:

代码语言:javascript
运行
复制
pa <- unlist(lapply(1:3, function(i) t.test(temp_data[, i], temp_data[, i + 6])$p.value))
pb <- unlist(lapply(1:3, function(i) t.test(temp_data[, i + 3], temp_data[, i + 6])$p.value))
p <- c(pa, pb)
p.table <- as.matrix(data.frame(factor.1 = colnames(temp_data[1:6]),
           factor.2 = rep(colnames(temp_data[7:9]), 2),
           p.value = p))
p.table
#      factor.1 factor.2 p.value      
# [1,] "a1"     "c1"     "0.652543514"
# [2,] "a2"     "c2"     "0.176463197"
# [3,] "a3"     "c3"     "0.176463197"
# [4,] "b1"     "c1"     "0.372458894"
# [5,] "b2"     "c2"     "0.003949773"
# [6,] "b3"     "c3"     "0.652543514"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46741886

复制
相关文章

相似问题

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