因此,在excel中,有一个公式ttest可以在给定行上执行ttest(使用两个不同的阵列,例如= TTEST(A1:L1,M1:Z1,2,2) - 在这种情况下,两个-tailed,type 2)。它返回该行的pvalue。
我想知道在R中是否存在类似的方法,其中我有两个相等长度的数据帧(df1和df2)代表两个数组,新向量返回t检验的结果对于每一行。
因此,T-test将df1中的所有row1值作为第一个数组,并将df2中的所有row1值作为第二个数组,在新的ttest向量中返回该行的pvalue,并继续向下最后一行。
感谢您的帮助。
注意:我不一定知道每个数据帧中的列数,并且每次运行时它们都会有所不同。这就是我想让它自动化的原因。
答案 0 :(得分:0)
最简单的方法是使用for
循环,如:
p <- numeric(0)
for(i in seq(nrow(df1)))
pvalues[i] <- t.test(df1[i],df2[i])$p.value
你应该收到警告,从data.frame中取出行通常会导致一些令人困惑的类型强制,所以我会先将data.frames转换为矩阵并测试矩阵是否为数字,如
mx1 <- as.matrix(df1)
stopifnot(inherits(mx1,c('integer','numeric')))
和我们mx1代替for
循环中的df1。