Tidyverse - собирать и объединять при группировании по нескольким переменным - PullRequest
0 голосов
/ 10 октября 2018

Я знаю это очень простой вопрос , и я искал ответы здесь и здесь , пытаясь адаптировать код для моего текущего вопроса, ноЯ не был успешным.Таким образом, несколько раз нам нужно представлять таблицы со средним и стандартным отклонением (и другую информацию) по нескольким группам.Это действительно распространенный анализ, но когда мы решаем использовать tidyverse для его запуска, иногда с кодом становится трудно разобраться.

Gather

Я знаюэтот код очень близок к тому, что я хочу

all_fpc %>% 
  group_by(arm, Time) %>% 
  summarise_at(vars(sum_fpc), funs(mean, sd)) %>% 
  gather(key, val, mean:sd) %>% 
  separate(key, into = c('key1', 'key2')) %>% 
  print(n=nrow(.))

Но я сложен здесь.

Чтобы воспроизвести этот набор данных, попробуйте следующее:

ds <- data.frame(arm=c("Group 1","Group 2","Group 3", "Group 4"), 
                 Time = c("First","Second","Third"),
                 result = rnorm(n = 120,mean=10,sd=2))
ds %>% 
  group_by(arm, Time) %>% 
  summarise_at(vars(result), funs(mean, sd)) %>% 
  gather(key, val, mean:sd) %>% 
  print(n=nrow(.))

ВторойВопрос: Кто-нибудь знает любой пакет (основанный на tidyverse), который может создать сводную таблицу более простым способом?

Отредактировано: Как всегда, спасибо за все предложения!Ответ на этот вопрос ниже.

1 Ответ

0 голосов
/ 10 октября 2018

Если мы хотим воспроизвести вывод ezsummary, просто summarise

ds %>% 
   group_by(arm, Time) %>% 
   summarise(variable = 'result', 
             mean = round(mean(result), 1),
             sd = round(sd(result), 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...