Попробуйте:
Сначала создайте фиктивный набор данных, похожий на ваш:
library(dplyr)
dat <- tibble::tribble(
~AL.01, ~AL.02, ~AL.03,
"Above Normal", "Above Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "High",
"Normal", "Normal", "High",
"Normal", "Normal", "Above Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Above Normal", "High", "Above Normal",
"Above Normal", "Normal", "Above Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"Normal", "Normal", "Normal",
"High", "Normal", "Normal"
)
Теперь выполните следующие операции подсчета и переименования:
AL.01 <- dat %>%
count(AL.01) %>%
rename(metric = AL.01, AL.01 = n)
AL.02 <- dat %>%
count(AL.02) %>%
rename(metric = AL.02, AL.02 = n)
AL.03 <- dat %>%
count(AL.03) %>%
rename(metric = AL.03, AL.03 = n)
final <- full_join(AL.01, AL.02) %>% full_join(AL.03)
final
Data.frame final
должен выглядеть следующим образом:
# A tibble: 3 x 4
metric AL.01 AL.02 AL.03
<chr> <int> <int> <int>
1 Above Normal 3 1 3
2 High 1 1 2
3 Normal 19 21 18