我有一個資料集,其中包含具有疫苗接種狀態的 COVID-19 患者以及他們是死是活。
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")
df <- data.frame(ID, Group, Status)
到目前為止,我已經嘗試撰寫了一個代碼,我可以做到這一點:
library(tidyverse)
df_organ %>%
mutate_at("Group", as.character) %>%
list(group_by(.,Group, Status), .) %>%
map(~summarize(.,cnt = n())) %>%
bind_rows() %>%
replace_na(list(Group="Overall"))
給我輸出:
`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 7 x 3
# Groups: Group [4]
Group Status cnt
<chr> <chr> <int>
1 1. vacc unvacc Alive 3
2 1. vacc unvacc Dead 4
3 2. vacc Alive 4
4 2. vacc Dead 3
5 3. vacc Alive 3
6 3. vacc Dead 3
7 Overall NA 20
我正在尋找的輸出是這樣的:
`summarise()` has grouped output by 'Group'. You can override using the `.groups` argument.
# A tibble: 10 x 3
# Groups: Group [4]
Group Status cnt
<chr> <chr> <int>
1 1. vacc unvacc Alive 3
2 1. vacc unvacc Dead 4
3 1. uvac unvacc All 7
4 2. vacc Alive 4
5 2. vacc Dead 3
6 2. vacc All 7
5 3. vacc Alive 3
6 3. vacc Dead 3
7 3. vacc All 6
8 Overall Alive 10
9 Overall Dead 10
10 Overall All 20
uj5u.com熱心網友回復:
我們可以這樣做:
- 首先我們數數。我們使用
count來自 的函式dplyr。好處count是它繼承了group_by和summarise。 - 然后我們用
pivot_widerfromtidyr包制作寬格式 - 接下來我們使用方便的
janitor包來獲取 rowsums 和 colsums。(我們也可以用 base 來做到這一點......) - 然后通過重命名列回到長格式
library(dplyr)
library(tidyr)
library(janitor)
df %>%
count(Group, Status) %>%
pivot_wider(
names_from = Status,
values_from = n
) %>%
adorn_totals("col", name = "All") %>%
adorn_totals("row", name = "Ovreall") %>%
pivot_longer(
cols= -Group,
names_to = "Status",
values_to = "cnt"
)
Group Status cnt
<chr> <chr> <dbl>
1 1. vacc unvacc Alive 3
2 1. vacc unvacc Dead 4
3 1. vacc unvacc All 7
4 2. vacc Alive 4
5 2. vacc Dead 3
6 2. vacc All 7
7 3. vacc Alive 3
8 3. vacc Dead 3
9 3. vacc All 6
10 Ovreall Alive 10
11 Ovreall Dead 10
12 Ovreall All 20
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/393454.html
上一篇:用位置串列中的索引替換向量元素
