我使用一个真正的大型数据集,很难单独查看所有列。 此时我只想统计所提供信息的频率。 假设我有一个如下所示的数据框:
|ID |Symptome1|Symptome2|Symptome3 |Symptome4|
|123|Rash |Vomiting |Cough |Pain|
|345|Urticaria|Rash |Angioedema|Pain|
现在我想分别计算所有 Symptome1、所有 Samyptome2、所有 Symptome3 等。
在一个小数据集中我可能会使用
dataset%>%count(Symptome1)
当然,我可以分别对所有列执行此操作,但我想我需要类似循环之类的东西?
我认为首先将数据以长格式保存会更容易做到这一点:
dat |>
tidyr::pivot_longer(-ID, names_to = "Symptome") |>
summarise(
n = n(),
.by = c(Symptome, value)
) |> arrange(Symptome)
# # A tibble: 7 × 3
# Symptome value n
# <chr> <chr> <int>
# 1 Symptome1 Rash 1
# 2 Symptome1 Urticaria 1
# 3 Symptome2 Vomiting 1
# 4 Symptome2 Rash 1
# 5 Symptome3 Cough 1
# 6 Symptome3 Angioedema 1
# 7 Symptome4 Pain 2