从R

时间:2019-01-09 11:51:59

标签: r dataframe

我想根据像这样的数据帧中的id计算平均值:

id  |  value
1      100
2      200
3      100
1      100
1      100
3      200
2      300

这是我到目前为止编写的代码:

ids <- unique(df$id)
for(i in ids){
  ...
}

我怎样才能只调用每个id的值来计算均值?

上面示例值的

结果(平均值)应为:1 = 100、2 = 250、3 = 150

2 个答案:

答案 0 :(得分:0)

您可以使用tapply

tapply(df$value, df$id, mean)

答案 1 :(得分:0)

您可以按ID列分组,然后轻松计算平均值或任何其他汇总指标:

library(tidyverse)
df_summary <- df %>%
  group_by(id) %>%
  summarise(id_mean = mean(value))