我有一个包含个人与小组值相关联的数据框。我想要识别那些平均值大于整个数据集均值加一倍标准差的小组。为了做到这一点,我先计算整个数据框的均值和标准差,然后运行成对的t检验来比较每个组的均值。我在输出结果时遇到了困难。
> head(df)
individual group value
1 11559638 75 0.371
2 11559641 75 0.367
3 11559648 75 0.410
4 11559650 75 0.417
5 11559652 75 0.440
6 11559654 75 0.395
> allvalues <- data.frame(mean=rep(mean(df$value), length(df$individual)), sd=rep(sd(df$value), length(df$individual)))
> valueplus <- with(df, by(df, df$individual, function(x) t.test(allvalues$mean + allvalues$sd, df$value, data=x)))
> tmpplus
--------------------------------------------------------------------------
df$individuals: 10
NULL
--------------------------------------------------------------------------
df$individuals: 20
NULL
--------------------------------------------------------------------------
df$individuals: 21
Welch Two Sample t-test
data: allvalues$mean + allvalues$sd and df$value
t = 84.5217, df = 4999, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.04676957 0.04899068
sample estimates:
mean of x mean of y
0.4719964 0.4241162
我该如何将结果存入数据框中?我期望的输出应该类似于这样:
groups t df p-value mean.x mean.y
1 10 NULL NULL NULL NULL NULL
2 20 NULL NULL NULL NULL NULL
3 21 84.5217 4999 2.2e-16 0.4719964 0.4241162
mtcars$mpg
,因此测试应用于整个数据集而不是特定id(组)的值。由于声望较低,我无法发表评论,但只是想指出这一点。如果可能,请提供替代方案。 - Priyesh Mehta