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

Try*_*arn 1 r t-test

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

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

我得到的错误如下:

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

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

Cor*_*aaz 5

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

首先,请确保您的数据通过了均方检验- 方差是否均一?我们这样做是带有R 费舍尔的F检验var.test(x, y)

CG <- subset(data, treat == "Control")
TG <- subset(data, treat != "Control")
var.test(CG, TG)
Run Code Online (Sandbox Code Playgroud)

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

agep <- t.test(CG$age, TG$age, var.equal = TRUE)
Run Code Online (Sandbox Code Playgroud)

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

agep <- t.test(CG$age, TG$age, var.equal = FALSE)
Run Code Online (Sandbox Code Playgroud)