【问题标题】:Getting mean and standard deviation from groups in a data.frame从 data.frame 中的组中获取平均值和标准差
【发布时间】:2013-05-22 12:02:04
【问题描述】:

我有四个类别 1AS、1CS、1AI、1CI 的列表形式的心率数据,每个类别的大小都是可变的。我想为列表中的每个类别输出平均值和标准差。我有这种格式的数据来计算我已经成功完成的 ANOVA 和 Tukey,但平均值让我很难过!

   Group  HR
1    1AS 300
2    1AS 280
3    1AS 260
4    1AS 250
5    1AS 300
6    1AS 272
7    1AS 250
8    1AS 198
9    1AS 200
10   1AS 195
11   1AS 214
12   1AS 249
13   1AS 240
14   1CS 250
15   1CS 236
16   1CS 200
17   1CS 272
18   1CS 206
19   1CS 203
20   1CS 237
21   1CS 214
22   1AI 218
23   1AI 276
24   1AI 240
25   1AI 264
26   1AI 300
27   1AI 315
28   1AI 300
29   1AI 285
30   1AI 286
31   1CI 167
32   1CI 233
33   1CI 214
34   1CI 219
35   1CI 214
36   1CI 246
37   1CI 230
38   1CI 218

【问题讨论】:

  • Apply function conditionally 可能会有所帮助,只需更改 sum 并将其替换为您希望应用的相关功能(meansd)。

标签: r statistics mean


【解决方案1】:

假设您的数据位于名为 DF 的 data.frame 中:

by(DF$HR,DF$Group,mean)

# DF$Group: 1AI
# [1] 276
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1AS
# [1] 246.7692
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1CI
# [1] 217.625
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1CS
# [1] 227.25

by(DF$HR,DF$Group,sd)

# DF$Group: 1AI
# [1] 30.93946
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1AS
# [1] 36.48551
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1CI
# [1] 23.25595
# ------------------------------------------------------------------------------------------------------------------------------------------------------------- 
# DF$Group: 1CS
# [1] 25.77236

【讨论】:

    【解决方案2】:

    使用ave的另一种解决方案:

    ave(DF$HR, DF$Group)
    

    给出平均值和

    ave(DF$HR, DF$Group, FUN=sd)
    

    DF 是您的数据框。

    【讨论】:

    • 谢谢你的回答,它可以工作,但我更喜欢聚合或命令 - 输出更容易阅读!
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 2016-03-11
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2020-12-26
    • 2014-01-07
    相关资源
    最近更新 更多