我正在尝试进行两个样本的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')
是的!长度确实不同。如果我没有进行配对测试,不确定为什么会出问题吗?预先感谢您的帮助。
答案 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)