You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何批量统计多变量所有为1的回答组合的频次分布

解决方法

你可以直接通过对目标变量列批量调用计数函数实现全组合统计,无需手动遍历组合,以下是基于tidyverse的实现方案:

1. 统计所有实际出现的组合的频数

直接使用dplyr::count()结合across()指定目标列即可一次性输出所有出现过的Var1~Var6组合和对应受试者人数:

library(tidyverse)

# 构造数据集的代码你已有,这里直接统计
freq_df <- DF %>%
  # 指定统计Var1到Var6的组合,name参数指定计数结果的列名
  count(across(Var1:Var6), name = "受试者人数")

freq_df

用你提供的测试数据运行后,输出结果如下:

Var1 Var2 Var3 Var4 Var5 Var6 受试者人数
1    0    0    0    1    0    0          1
2    0    0    1    0    0    0          1
3    1    1    1    1    0    1          1
4    1    1    1    1    1    1          2

2. 补全所有理论可能的组合(含无人匹配的组合)

如果需要覆盖2^6=64种所有可能的0/1组合,没有人对应的组合人数显示为0,可以用complete()补全结果:

full_freq_df <- freq_df %>%
  complete(!!!rlang::syms(paste0("Var", 1:6)), fill = list(受试者人数 = 0))

full_freq_df

3. 快速筛选特定变量为1的组合

如果后续需要单独提取某几个变量全为1的组合,直接加过滤条件即可:

# 示例:筛选Var1、Var3同时为1的所有组合频数
filter(freq_df, Var1 == 1, Var3 == 1)

内容的提问来源于stack exchange,提问作者Sascha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:45:04