首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在每列的R中循环?

错误:在每列的R中循环?
EN

Stack Overflow用户
提问于 2017-04-09 09:39:50
回答 1查看 50关注 0票数 0

我有一些数据并试图做分析。我不知道如何使用R,但我看了很少的视频在互联网上,并试图模仿相同的测试,我需要。我想做的是尝试比较前四行(1-4行)和接下来的四行(4-8行)。在得到结果后,我想将相同的测试应用于下一列,因此我将有4个不同的p值。请找到一个示例图像附加附像。我总共有4列,这是先导测试,以后将用大的列大小执行。请问是否有人能告诉我做错了什么,并编辑代码。我很乐意为大家提供帮助。

代码语言:javascript
复制
Test = matrix(c(120, 115, 132, 117, 116,117,125,120,110,113,128,115),ncol=4, nrow = 4)
Test=t(Test)

Drug = matrix(c(88, 80, 85, 85, 83,84,90,83,83,79,86,82),ncol=4, nrow = 4)
Drug=t(Drug)
mydata<-cbind(Test,Drug)


for (i in 1:4)
wilcox.test(mydata[i,1:4],mydata[i,5:8], mu=0, alt="two.sided", paired=T,  conf.int=F,conf.level = 0.99, exact=T,correct=T)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-09 11:04:51

为此,我建议使用data.framedata.table,列指定组(对应于示例中的行,例如A、B、C),一列指定测试/药物,一列指定值:

代码语言:javascript
复制
library(data.table)
Test <- c(120, 115, 132, 117, 116,117,125,120,110,113,128,115)
Drug <- c(88, 80, 85, 85, 83,84,90,83,83,79,86,82)
groups <- rep(c(rep("A", 4), rep("B", 4), rep("C", 4)), 2)
variable <- c(rep("test", length(Test)), rep("drug", length(Drug)))
dt <- data.table(group = groups, variable = variable, value = c(Test, Drug))

# >dt
#     group variable value
#  1:     A     test   120
#  2:     A     test   115
#  3:     A     test   132
#  4:     A     test   117
#  5:     B     test   116
#  6:     B     test   117
#  7:     B     test   125
#  8:     B     test   120
#  9:     C     test   110
# 10:     C     test   113
# 11:     C     test   128
# 12:     C     test   115
# 13:     A     drug    88
# 14:     A     drug    80
# 15:     A     drug    85
# 16:     A     drug    85
# 17:     B     drug    83
# 18:     B     drug    84
# 19:     B     drug    90
# 20:     B     drug    83
# 21:     C     drug    83
# 22:     C     drug    79
# 23:     C     drug    86
# 24:     C     drug    82
#     group variable value

每组测试值与药物值之间的关系是:

代码语言:javascript
复制
dt_stat <- dt[, .(p_value = wilcox.test(value~variable, mu=0, alt="two.sided", paired = TRUE,
  conf.int = FALSE, conf.level = 0.99,exact = TRUE, correct = TRUE)$p.value),
  by = .(group)]

# > dt_stat
#    group    p_value
# 1:     A 0.09751254
# 2:     B 0.09751254
# 3:     C 0.12500000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43305240

复制
相关文章

相似问题

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