【问题标题】:How to create a column with values retired from a group_by (dplyr)如何使用从 group_by (dplyr) 中退休的值创建列
【发布时间】:2015-05-06 13:40:05
【问题描述】:

假设我们有以下data.frame:

df <- data.frame( a=c( 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3),
                  b=c('x','x','y','y','v','v','w','w','x','x','y','y')
                 )

我想要做的是创建一个列“d”,这样 d 将是对每个添加到 a 值的组的操作。例如,假设“d”将等于“a”的每个值减去每个组的“a”的平均值。我们有:

new_df <- data.frame(a=c( 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3),
                     b=c('x','x','y','y','v','v','w','w','x','x','y','y'),
                     d=c(-1 , -1, -1, -1, 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1)

有没有办法使用 dplyr 做到这一点?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    试试

    library(dplyr)
    df %>%
       group_by(b) %>% 
       mutate(d= a-mean(a))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2017-07-12
      • 2018-11-02
      • 1970-01-01
      相关资源
      最近更新 更多