【问题标题】:Is there a way to include Groupby inside mutate [duplicate]有没有办法将 Groupby 包含在 mutate [重复]
【发布时间】:2019-10-13 08:30:49
【问题描述】:

我有一个数据框

df2
       Date Var Value
1 27/9/2019   A    56
2 28/9/2019   A    50
3 1/10/2019   A    90
4 2/10/2019   B   100

我尝试在 mutate 中包含 group by。但不能。我需要的是

df1
       Date Var Value   mean
1 27/9/2019   A    56   65.3
2 28/9/2019   A    50   65.3
3 1/10/2019   A    90   65.3 
4 2/10/2019   B   100   100

我尝试使用以下代码但没有得到。实际上我只需要在总结下完成。有什么办法吗?

df1 <- df2 %>% mutate(mean = group_by(Var) %>% summarise(mean(Value)))

【问题讨论】:

  • 您好,谢谢。我知道这段代码。但它只返回平均值。但我也需要这些值列。你可以参考我的预期输出
  • 顺便说一句,你可以做df2 %&gt;% group_by(Var) %&gt;% mutate(mean = mean(Value))

标签: r


【解决方案1】:

试试这个:

df2 %>% 
  group_by(Var) %>% 
  mutate(Mean = mean(Value))


【讨论】:

    【解决方案2】:

    我们可以从base R 使用ave

    df2$Mean <- with(df2, ave(Value, Var))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2016-10-13
      相关资源
      最近更新 更多