在R中使用不相等的样本量运行两次样本t.test

时间:2018-10-15 07:27:39

标签: r t-test

我正在尝试进行两个样本的t检验,以了解治疗组和对照组之间的差异。数据未配对。当我对原始数据帧进行子集处理时,我发现样本大小不相等(不是一个手工问题,但是R似乎使它成为问题)。这是我的代码:

CG<-subset(data,treat=="Control")
TG<-subset(data,treat!="Control")
agep <-t.test(CG$age~TG$age)$p.value

我得到的错误如下:

Error in model.frame.default(formula = CG$age ~ TG$age) : 
variable lengths differ (found for 'TG$age')

是的!长度确实不同。如果我没有进行配对测试,不确定为什么会出问题吗?预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如果不相等的样本量是个独立组,则可以通过不配对的两样本t检验在R中解析均值。

首先,请确保您的数据通过了同方差检验-方差是否均一?我们在R中使用 Fisher的F检验var.test(x, y)

CG <- subset(data, treat == "Control")
TG <- subset(data, treat != "Control")
var.test(CG, TG)

如果您的 p > 0.05,则可以假定两个样本的方差均一。在这种情况下,我们通过设置参数var.equal = TRUE来运行经典的Student的两样本t检验。

agep <- t.test(CG$age, TG$age, var.equal = TRUE)

如果F检验返回的 p <0.05,则可以假定两组的方差不同(异方差)。在这种情况下,您可以运行Welch t统计信息。只需设置var.equal = FALSE

agep <- t.test(CG$age, TG$age, var.equal = FALSE)