Как я могу `group_by` и` summarise`, сохраняя все числовые столбцы, не зная имен этих столбцов? - PullRequest
0 голосов
/ 27 ноября 2018

В кадре данных Indometh я хочу получить сумму time на Subject, но также сохранить все остальные столбцы.

Пока мой код:

group_by(.data = Indometh, Subject) %>% summarise(TimeSum=sum(time))

Это дает мне фрейм данных только со столбцами Subject и TimeSum.Как включить все остальные столбцы в этот фрейм данных (или любые другие) без необходимости знать их имена?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы можете использовать функцию mutate (), чтобы добавить новый столбец и сохранить все остальные, как показано ниже:

library(dplyr) Indometh %>% group_by(Subject) %>% mutate(total = sum(time))

# A tibble: 66 x 4
# Groups:   Subject [6]
   Subject  time  conc total
   <ord>   <dbl> <dbl> <dbl>
 1 1        0.25  1.5   31.8
 2 1        0.5   0.94  31.8
 3 1        0.75  0.78  31.8
 4 1        1     0.48  31.8
 5 1        1.25  0.37  31.8
 6 1        2     0.19  31.8
 7 1        3     0.12  31.8
 8 1        4     0.11  31.8
 9 1        5     0.08  31.8
10 1        6     0.07  31.8
0 голосов
/ 27 ноября 2018

Используйте summarize_if.Например,

exd <- data.frame(g = rep(c('a', 'b'), 5),
                  notthisone = "nope!",
                  n1 = runif(10),
                  n2 = runif(10))
summarize_if(group_by(exd, g), is.numeric, mean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...