使用t的不同行数在多个矩阵上的学生t检验(已配对)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用t的不同行数在多个矩阵上的学生t检验(已配对)相关的知识,希望对你有一定的参考价值。
我需要在列上使用学生t检验分别具有21 x 4044和36 x 4044的两个矩阵。这两列都是相同的,只是行的长度不同。
示例输入数据的示例代码
mat1 <- matrix(rnorm(100), ncol = 5)
mat2 <- matrix(rnorm(125), ncol = 5)
f <- function(x,y){
test <- t.test(x,y, paired=TRUE)
out <- data.frame(stat = test$statistic,
df = test$parameter,
pval = test$p.value,
conl = test$conf.int[1],
conh = test$conf.int[2]
)
return(out)
}
sapply(seq(ncol(mat1)), function(x) f(mat1[,x], mat2[,x]))
但是出现以下错误
Error in complete.cases(x, y) : not all arguments have the same length
如何处理此错误,请提出建议。
对于行数相同的矩阵,它可以很好地工作。
答案
配对t检验假设您对每个实体都有两个结果,因此,例如,您可以在比赛前后测量同一个人的心律,而您的读数“ 1”和“ 2”则为“配对”。这是您通过paired = TRUE
实现的目标。
在您的示例中,您使用了不同大小的向量,这表明您可能未在记录同一实体的两个读数,因此从这里开始:
- 如果尚未从同一主题收集成对的读数,请切换到
paired = FALSE
。 - [如果您一直在收集来自同一主题的成对读数,那么您会丢失一些读数(由于一列的读数要多于另一列,因此您应该删除没有两个读数的情况。
希望这有意义并且有所帮助。
以上是关于使用t的不同行数在多个矩阵上的学生t检验(已配对)的主要内容,如果未能解决你的问题,请参考以下文章
R配对样本t检验(PAIRED T-TEST)