R:对两个不同数据帧的所有匹配行执行 T 检验



因此,在excel中,有一个公式ttest可以跨给定行执行ttest(使用两个不同的数组,例如=TTEST(A1:L1,M1:Z1,2,2) - 在这种情况下,双尾,类型2)。它返回该行的 p值。

我想知道在 R 中是否有类似的方法来做到这一点,其中我有两个长度相等的数据帧(df1 和 df2),它们代表两个数组,新向量返回每行的 t 检验结果。

因此,T 检验会将 df1 中的所有 row1 值作为第一个数组,将

df2 中的所有 row1 值作为第二个数组,在新的 ttest 向量中返回该行的 pvalue,然后继续向下到最后一行。

感谢您的帮助。

注意:我不一定知道每个数据帧中的列数,每次运行它时它们都会有所不同。这就是为什么我想自动化它。

最简单的方法是使用 for 循环,如下所示:

p <- numeric(0)
for(i in seq(nrow(df1)))
    pvalues[i] <- t.test(df1[i],df2[i])$p.value

您应该注意,从 data.frame 中删除行通常会导致一些令人困惑的类型强制,因此我会先将 data.frame 转换为矩阵,并测试矩阵是否为数字,如

mx1 <- as.matrix(df1)
stopifnot(inherits(mx1,c('integer','numeric')))

和 US MX1 代替 for 循环中的 DF1。

最新更新