【问题标题】:R: How to compute the mean by ID in a given data frame? [duplicate]R:如何在给定的数据框中通过 ID 计算平均值? [复制]
【发布时间】:2015-05-06 02:59:16
【问题描述】:

我有以下数据:

ID       Value
1         3
1         5

如何通过 ID 计算平均值,并将平均值作为新变量放入数据框中,以便针对相同的 ID 重复该平均值。结果应如下所示:

ID       Value   Mean
1         3       4
1         5       4

谢谢。

【问题讨论】:

  • 试试df$mean <- ave(df$Value, df$ID, FUN = mean)
  • library(dplyr); df %>% group_by(ID)%>% mutate(Mean=mean(Value))
  • 谢谢,第一个成功了。我最初使用的是 tapply,但它不起作用。

标签: r apply


【解决方案1】:

您可以使用ave() 按组计算平均值。假设您的数据框名为df,您可以执行以下操作:

df$Mean <- with(df, ave(Value, ID, FUN=mean))

这会将Mean 添加为数据框中的另一列。

【讨论】:

    【解决方案2】:

    您可以使用 'base' R 中的 'ave' 函数:

    df=data.frame(ID=c(1,1), value=c(3,5))
    df['mean'] <- ave(df$value, df$ID, FUN=mean)
    
    > df
    ###   ID value mean
    ### 1  1     3    4
    ### 2  1     5    4
    

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多