我正在尝试使用dplyr的group_by / summarise汇总数据框中的多列。如果对后一列中的前一列有依赖性,则summary使用已经汇总的值。有没有办法避免这种行为并使用原始值?
我当然可以对汇总的方式进行重新排序,或者为具有相关性的汇总列提供新的名称,并在以后重命名。但是,这种行为有点出乎意料,因此我想知道这是否是避免这种情况的方法。我拥有dplyr的最新版本(版本0.8.0.1)。
library(dplyr)
# Create data frame with data and group column
df <- data.frame(observation = rnorm(5000),
group = rep(1:1000, each = 5))
# Summarise to mean observation --> Standard deviation is NA
df %>%
group_by(group) %>%
summarise(observation = mean(observation), std = sd(observation) %>%
View
# Possible solution: rename variable --> Standard deviation is calculated
df %>%
group_by(group) %>%
summarise(observation_mean = mean(observation), std = sd(observation)) %>%
rename(observation = observation_mean) %>%
View
在第一个groupby / summaryise中,没有计算标准差,因为dplyr使用已经更新的值(仅为1)工作。 在第二个groupby / summary中,原始观测值仍然可用,并且标准偏差已按预期计算。