假设我们有以下数据框:
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 来做到这一点?
最佳答案
尝试
library(dplyr)
df %>%
group_by(b) %>%
mutate(d= a-mean(a))
关于r - 如何使用从 group_by (dplyr) 中退休的值创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078522/