gpt4 book ai didi

r - 各组的均值和标准差

转载 作者:行者123 更新时间:2023-12-01 12:31:06 25 4
gpt4 key购买 nike

我有一个类似这样的数据框:

obs1 obs2 obs3 obs4 obs5
4 6 7 3 0
7 2 4 5 0
2 5 7 8 1
5 8 6 9 1
6 0 3 6 1
7 1 2 4 1

我想计算以 obs5 为条件的 obs 1 到 4 的均值和标准差,并将其放入表格格式中。列标题应该是每个 obs5 是“0”还是“1”的平均值和标准偏差。因此,在这种情况下,表格将是 4 x 4 类型。

我试过了

table <- aggregate( .~ obs5, DF, function(x) c(mean = mean(x), sd = sd(x)))

我不确定如何进一步获得正确的格式。

最佳答案

我们可以使用data.table。我们将 'data.frame' 转换为 'data.table' (setDT(df1)),将其从 'wide' 格式 reshape 为 'long' 格式,然后将其 reshape 回 'wide' 格式广播data.table 中的 dcast 可以采用多个 fun.aggregate

library(data.table)#v1.9.6+
DT <- melt(setDT(df1), id.var='obs5', variable.name='Obs')
dcast(DT, Obs~obs5, value.var='value', fun.aggregate=c(mean, sd))

# Obs value_mean_0 value_mean_1 value_sd_0 value_sd_1
#1: obs1 5.5 5.00 2.121320 2.160247
#2: obs2 4.0 3.50 2.828427 3.696846
#3: obs3 5.5 4.50 2.121320 2.380476
#4: obs4 4.0 6.75 1.414214 2.217356

关于r - 各组的均值和标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com