【发布时间】:2017-07-02 16:37:08
【问题描述】:
CrossValidated 上有一个问题,有人给t.test 函数提供了两个数据帧而不是两个向量:https://stats.stackexchange.com/questions/261830/t-test-or-wilcox-in-r-and-how-to-apply-to-dataframe-splitted-in-2-groups/
查看此代码以获得更短的示例
a <- data.frame(foo=1:5, bar=5:9)
b <- data.frame(foo=1:5, bar=5:9)
t.test(a,b)
t.test 函数的 help 页面明确指出 x 和 y 应该是
数据值的(非空)数值向量。
上面的代码仍然没有抛出错误但给出了结果。结果是什么意思?
【问题讨论】:
-
我怀疑
a和b被强制转换为向量,这就是正在测试的内容。将您的结果与t.test(as.vector(as.matrix(a)), as.vector(as.matrix(b)))进行比较。顺便说一句,我没有收到您的代码错误。 -
是的,这会产生相同的结果。不过,奇怪的是,数据帧是这样被强制的。这种行为有什么用处?
-
在我个人看来,这肯定会引发错误或至少是一个警告。