Я пытаюсь суммировать несколько столбцов в фрейме данных, используя dplyr group_by / sumrize.Если в одном из более поздних столбцов есть зависимость от более раннего столбца, при суммировании используются уже суммированные значения.Есть ли способ избежать такого поведения и использовать исходные значения?
Конечно, я могу изменить порядок суммирования или дать итоговому столбцу с зависимостями новое имя и переименовать его позже.Тем не менее, поведение несколько неожиданно, и поэтому мне было интересно, если это способ избежать этого.У меня есть последняя версия 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
В первом group_by / Sumumize стандартное отклонение не рассчитывается, так как dplyr работает с уже обновленным значением, которое составляет всего 1Во втором group_by / резюмировать, оригинальные наблюдения все еще доступны, и стандартное отклонение вычисляется как ожидалось.