【问题标题】:group by average in R [duplicate]在R中按平均值分组[重复]
【发布时间】:2016-12-09 23:12:59
【问题描述】:

我有数据结构(数据框),其中包含 3 列,年龄(整数),体重(浮点数)和身高(浮点数),我想计算每个年龄组的平均和中位数体重/身高(例如平均体重/10 岁时的身高、11 岁时的平均体重/身高、12 岁时的平均体重/身高等)。想知道有没有参考代码示例?

目前,我正在使用 Python numpy/pandas 包在 R 之外执行 group-by 类似的功能。如果有 R 内置的 group-by 解决方案,那就太好了。

问候, 林

【问题讨论】:

  • 查看基本 R 中 bytapply 函数的文档。如果您正在寻找一个包,dplyr 是执行此类操作的流行包。
  • @WeihuangWong,投赞成票,谢谢!
  • @DavidArenburg,感谢您的提醒。下次提问时我会发布我研究的内容。

标签: r statistics


【解决方案1】:

我们可以使用dplyr

library(dplyr)
df1 %>%
     group_by(age) %>%
     summarise_each(funs(mean))

data.table

library(data.table)
setDT(df1)[, lapply(.SD, mean), by = age]

或者使用来自base Raggregate

aggregate(.~age, df1, mean)

【讨论】:

  • @DavidArenburg THE Op 是 R 的新手,不知道按功能分组。
  • @DavidArenburg 根据描述,我对预期并不完全确定。所以我提供了一些选择。
  • 我喜欢 akrun 的 cmets 和回复。 R 文档有时令人困惑。 akrun 的回答要清楚得多。
  • 投票支持 akrun 的所有回复。感谢@DavidArenburg 的cmets,我也支持您的回复。当我下次发布问题时,我会发布我所做的研究。 :)
猜你喜欢
  • 2017-02-13
  • 2013-11-24
  • 2016-01-10
  • 2021-10-17
  • 1970-01-01
  • 2012-09-13
  • 2017-10-25
  • 2016-03-13
  • 1970-01-01
相关资源
最近更新 更多