运行 两个样本 t.test 在 R 中样本大小不相等

Running a two-sample t.test with unequal sample size in R

我正在尝试 运行 一个双样本 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')

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

如果不相等的样本量是独立组,则可以通过未配对的双样本 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-test returns a p < 0.05,那么可以假设两组的方差不同(异方差性)。在这种情况下,您可以 运行 Welch t 统计量。只需设置 var.equal = FALSE.

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