r - 如何组合多个二分变量(是/否)并在 R 中获取多个响应表?
问题描述
在我的数据集中,我有几个这样的变量 -
Hypertension = 1,0,1,1,1,1,0,1
Diabetes = 1,1,0,0,1,1,0,1
Other NCD = 1,1,0,0,0,0,1,1
此处,1 = 是,0 = 否
现在我想绑定来自上述变量的所有这些“是”响应并创建一个像这样的多响应表 -
SPSS 有一个称为“多重响应”的功能。此图像是此函数的输出之一。如何创建此表?
提前致谢。
解决方案
请试试这个。
dat <- data.frame(
Hypertension = c(1,0,1,1,1,1,0,1),
Diabetes = c(1,1,0,0,1,1,0,1),
`Other NCD` = c(1,1,0,0,0,0,1,1),
check.names = FALSE
)
library(dplyr)
library(tidyr) # pivot_longer
dat %>%
tidyr::pivot_longer(everything(), names_to="k", values_to="v") %>%
group_by(k) %>%
summarize(
n = n(),
cases = sum(v),
percent = 100 * cases / n()
) %>%
ungroup() %>%
mutate(overall = 100 * cases / sum(n))
# # A tibble: 3 x 5
# k n cases percent overall
# <chr> <int> <dbl> <dbl> <dbl>
# 1 Diabetes 8 5 62.5 20.8
# 2 Hypertension 8 6 75 25
# 3 Other NCD 8 4 50 16.7
推荐阅读
- snowflake-cloud-data-platform - 在 Azure 存储上使用 ext table + insert 时,Snowflake 复制了错误的数据
- arrays - 为什么当递增接收到数组地址的指针时,其行为与使用该地址初始化的指针不同?
- r - How to save PCA summary?
- tags - 如何制作点击后自动禁用的链接
- reactjs - React JSX:在选中时选择“选中”
- virtual-machine - 如何在 VMWare 快照中保持系统日期和时间不变?
- python - 如何绘制概率密度曲线?
- java - 如何将其放入工作代码中以验证用户输入(Java)?
- c - 如何正确调用仅在 .c 文件中定义的函数?(内核开发)
- javascript - React Hook 中的条件语句问题