TL;DR
t_test_result = t.test(DataframeA$Column1, DataframeB$Column2, paired=TRUE)
说明
如果数据是成对的,我假设两个数据帧将具有相同数量的观察值(相同的行数)。您可以通过nrow(DataframeA) == nrow(DataframeB) 进行检查。
您可以将数据框的每一列视为一个向量(值的有序列表)。您使用t.test 的方式是使用公式(y~x),您实际上是在说:给定data 中指定的数据框,执行测试以评估变量均值差异的显着性response 在Column1 中的配对组之间。
另一种思考方式是获取data 中的数据并将其分成两个向量:具有Column1 第一组观察值的向量和第二组观察值向量。然后,对于每个向量,计算均值和标准差,并应用适当的公式,得到 t 统计量,从而得到 p 值。
因此,您可以分别提取这两个向量并将它们作为参数提供给t.test() 函数。我希望它对初学者足够友好^^否则请告诉我
编辑:一些补充
(本来想在cmets里回复,结果发现没空间了嘿嘿)
关于@Ashish 为将其变成Welch 测试所做的事情,我会说是设置var.equal = FALSE。 paired 参数控制 t 检验是否在配对样本上运行,并且由于您的数据框的行数不相等,我怀疑观察结果不匹配。
至于 Cohen 的 d 效应大小,you can check this stats exchange question,我从中复制代码:
对于上下文,m1 和 m2 是组的平均值(您可以使用 n1 = mean(DataframeA$Column1) 获得),s1 和 s2 是标准差 (s2 = sd(DataframeB$Column2)),n1 和 n2 是样本大小 (n2 = length(DataframeB$Column2))
lx <- n1- 1 # Number of observations in group 1
ly <- n2- 1 # # Number of observations in group 1
md <- abs(m1-m2) ## mean difference (numerator)
csd <- lx * s1^2 + ly * s2^2
csd <- csd/(lx + ly)
csd <- sqrt(csd) ## common sd computation
cd <- md/csd ## cohen's d