首页 > 解决方案 > 如何组合多个二分变量(是/否)并在 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 有一个称为“多重响应”的功能。此图像是此函数的输出之一。如何创建此表?

提前致谢。

标签: r

解决方案


请试试这个。

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

推荐阅读