В кадре данных Indometh я хочу получить сумму time на Subject, но также сохранить все остальные столбцы.
Indometh
time
Subject
Пока мой код:
group_by(.data = Indometh, Subject) %>% summarise(TimeSum=sum(time))
Это дает мне фрейм данных только со столбцами Subject и TimeSum.Как включить все остальные столбцы в этот фрейм данных (или любые другие) без необходимости знать их имена?
TimeSum
Вы можете использовать функцию 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
Используйте summarize_if.Например,
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)