簡體   English   中英

從 group_by 和 summary 獲取廣泛的摘要

[英]Getting extensive summary from group_by and summary

我想知道從最后一次接種疫苗到進入 ICU 的中位時間是多長時間。 我有一個如下所示的數據集:

ID <- c(1:20)
Group <- c("1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc",
           "1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc", "1. vacc + unvacc", "2. vacc", "3. vacc",
           "1. vacc + unvacc", "2. vacc")
Status <- c("Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", 
            "Dead", "Alive", "Dead", "Alive", "Dead", "Alive", "Dead", "Alive")

Months <- c(5, 6, 1, 2, 3, 5, 2, 8, 2, 5, 5, 6, 1, 2, 3, 5, 2, 8, 2, 5)

我努力了:

df %>%
  group_by(Group, Status) %>%
  summarise(ICU_median = median(Months)) %>%
  pivot_wider(
    names_from = Status,
    values_from = ICU_median
  ) %>%
  adorn_totals("col", name = "All") %>% 
  adorn_totals("row", name = "Overall") %>% 
  pivot_longer(
    cols= -Group,
    names_to = "Status", 
    values_to = "ICU median"
  ) 

這給出了以下 output:

`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 12 x 3
   Group            Status `ICU median`
   <chr>            <chr>         <dbl>
 1 1. vacc + unvacc Alive           5  
 2 1. vacc + unvacc Dead            2  
 3 1. vacc + unvacc All             7  
 4 2. vacc          Alive           5.5
 5 2. vacc          Dead            3  
 6 2. vacc          All             8.5
 7 3. vacc          Alive           6  
 8 3. vacc          Dead            2  
 9 3. vacc          All             8  
10 Overall          Alive          16.5
11 Overall          Dead            7  
12 Overall          All            23.5

這幾乎是我想要的,但還遠遠不夠——因為我想知道每個亞組從最后一次疫苗接種到 ICU 入院的中位數月份。 我的問題是,“全部”組被加在一起,可能來自adorn_totals但我不知道如何加和除以 2,因為我不想要總和值,而是 1 內所有的中位數。vacc +解封。 此外,是否可以為每行/子組再插入兩列 25. 和 75. 分位數? (這對我根本不起作用)。 所需的 output 將是:

`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 12 x 3
   Group            Status `ICU median`  25. quartile  75. quartile
   <chr>            <chr>         <dbl>         <dbl>         <dbl>
 1 1. vacc + unvacc Alive           5               x             y
 2 1. vacc + unvacc Dead            2               z             d
 3 1. vacc + unvacc All             **3.5**  
 4 2. vacc          Alive           5.5
 5 2. vacc          Dead            3  
 6 2. vacc          All             **4.25**
 7 3. vacc          Alive           6  
 8 3. vacc          Dead            2  
 9 3. vacc          All             **4**  
10 Overall          Alive          Average median for all alive
11 Overall          Dead           Average median for all dead  
12 Overall          All            Average median for all

像這樣的東西? 請說清楚:

library(dplyr)
library(tidyr)
library(janitor)

df %>%
  group_by(Group, Status) %>%
  summarise(ICU_median = median(Months)) %>%
  pivot_wider(
    names_from = Status,
    values_from = ICU_median
  ) %>%
  adorn_totals("col", name = "All") %>% 
  rowwise() %>% 
  mutate(median_x = median(c(Alive, Dead))) %>% 
  pivot_longer(
    cols= -Group,
    names_to = "Status", 
    values_to = "ICU median"
  ) %>% 
  mutate(Group= ifelse(Status == "median_x", "Overall", Group)) %>% 
  arrange(Group) %>% 
  rename(ICU_median = `ICU median`) %>% 
  mutate(ICU_median = ifelse(Status == "All", ICU_median/2, ICU_median)) 
# A tibble: 12 x 3
   Group            Status   ICU_median
   <chr>            <chr>         <dbl>
 1 1. vacc + unvacc Alive          5   
 2 1. vacc + unvacc Dead           2   
 3 1. vacc + unvacc All            3.5 
 4 2. vacc          Alive          5.5 
 5 2. vacc          Dead           3   
 6 2. vacc          All            4.25
 7 3. vacc          Alive          6   
 8 3. vacc          Dead           2   
 9 3. vacc          All            4   
10 Overall          median_x       3.5 
11 Overall          median_x       4.25
12 Overall          median_x       4   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM