晚上好, 我有以下数据框:
Sex A B C D E
M 1 20 45 42 12
F 2 10 32 23 43
M 39 32 2 23 43
M 24 43 2 44 12
F 11 3 4 4 11
如何使用apply函数计算性别变量上面列出的数据框的每个数值变量的双样本t检验。结果应该是一个包含五个的矩阵 列:F.mean(女性的数值变量的平均值),M.mean(数值变量的平均值) 对于男性),t(对于t统计),df(对于自由度)和p(对于p值)。
谢谢!
答案 0 :(得分:3)
以下是使用err = Pa_OpenStream(
&stream,
&inputParameters,
NULL, /* &outputParameters, */
SAMPLE_RATE,
FRAMES_PER_BUFFER,
paClipOff, /* we won't output out of range samples so don't bother clipping them */
recordCallback,
&data);
边距apply
2
数据强>
out = apply(data[,-1], 2, function(x){
unlist(t.test(x[data$Sex == 'M'], x[data$Sex == 'F'])[c(1:3,5)],
recursive=FALSE)
})
#> out
# A B C D E
#statistic.t 1.2432059 3.35224633 -0.08318328 1.9649783 -0.2450115
#parameter.df 2.5766151 2.82875770 2.70763487 1.9931486 1.8474695
#p.value 0.3149294 0.04797862 0.93946696 0.1887914 0.8309453
#estimate.mean of x 21.3333333 31.66666667 16.33333333 36.3333333 22.3333333
#estimate.mean of y 6.5000000 6.50000000 18.00000000 13.5000000 27.0000000
答案 1 :(得分:1)
应该是apply,t.test和aggregate的组合。但首先将行名称转换为名称列。然后,您可以使用聚合进行子集化,然后使用t.test
进行应用