我正在开发两个数据集,来自于cats
,一个内置的R数据集。
> cats
Sex Bwt Hwt
1 F 2.0 7.0
2 F 2.0 7.4
3 F 2.0 9.5
4 F 2.1 7.2
5 F 2.1 7.3
6 F 2.1 7.6
7 F 2.1 8.1
8 F 2.1 8.2
9 F 2.1 8.3
10 F 2.1 8.5
11 F 2.1 8.7
12 F 2.1 9.8
...
137 M 3.6 13.3
138 M 3.6 14.8
139 M 3.6 15.0
140 M 3.7 11.0
141 M 3.8 14.8
142 M 3.8 16.8
143 M 3.9 14.4
144 M 3.9 20.5
我想在男性和女性标本的Bwt(性别== M和性别= = F)之间找到 99%置信区间差异均值
我知道t.test
执行此操作,除其他事项外,如果我将cats
分解为包含男性和女性Bwt
的两个数据集,则t.test()会抱怨两个数据集的长度不同,这是真的。 cats
只有47名女性,而男性只有87名。
是否可以通过某种其他方式进行操作,还是通过分解数据来误解数据?
编辑: 我有一个回答者在另一个问题上向我建议的函数,它可以得到数据集中的均值CI,可能会派上用场:
ci_func <- function(data, ALPHA){
c(
mean(data) - qnorm(1-ALPHA/2) * sd(data)/sqrt(length(data)),
mean(data) + qnorm(1-ALPHA/2) * sd(data)/sqrt(length(data))
)
}
答案 0 :(得分:5)
您应该使用公式界面应用t.test:
t.test(Bwt ~ Sex, data=cats, conf.level=.99)
答案 1 :(得分:0)
替代t.test
,如果你真的只对手段的差异感兴趣,你可以使用:
DescTools::MeanDiffCI(cats$Bwt, cats$Sex)
它给出了类似的东西
meandiff lwr.ci upr.ci
-23.71474 -71.30611 23.87662
默认情况下,这是使用 999 个自举样本计算的。如果需要更多,可以在 R
参数中指定:
DescTools::MeanDiffCI(cats$Bwt, cats$Sex, R = 1000)