Как работать с зависимостями при группировке / суммировании по нескольким столбцам? - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь суммировать несколько столбцов в фрейме данных, используя 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 / резюмировать, оригинальные наблюдения все еще доступны, и стандартное отклонение вычисляется как ожидалось.

...