我正在寻找更好的选项,将组均值直接保存在新列的同一数据框中。我通常按照如下所示的步骤解决这个问题。是否有可能在不显式合并它们的情况下保存方法,但立即使用 dplyr 进行操作?
data <- data.frame(group = rep(c("low","high"),2),
values = runif(n = 4, min = 0, max = 2))
data_mean <- data %>% group_by(group) %>% summarise (mean(values))
merge(data_mean, data)
group mean(values) values
1 high 0.2889459 0.07079697
2 high 0.2889459 0.50709475
3 low 0.7767188 0.93176182
4 low 0.7767188 0.62167588
最佳答案
只需使用 mutate
而不是 summarise
即可完成您想要的操作:
data %>%
group_by(group) %>%
mutate(mean = mean(values))
#Source: local data frame [4 x 3]
#Groups: group
#
# group values mean
#1 low 1.4017168 0.7478336
#2 high 0.8074821 1.1018971
#3 low 0.0939505 0.7478336
#4 high 1.3963122 1.1018971
注意:我的值与您的不同,因为您没有使用 set.seed
来实现随机数的再现性。
关于r - 保存 n 因子意味着在 r 中的同一数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721127/