R语言实现多选调查问卷选项共选占比关联矩阵计算方法
R实现多选选项共现关联矩阵计算
实现逻辑
你需要的关联矩阵核心计算规则为:矩阵[i,j] = 同时选中选项i和选项j的人数 / 选中选项i的总人数,可以通过矩阵运算快速完成计算,无需循环遍历。
完整可运行代码
# 1. 构造示例数据集 df <- read.table(text = "ID MR1 MR2 MR3 Person1 1 1 1 Person2 1 0 0 Person3 1 1 0", header = T, sep = " ", stringsAsFactors = F) # 2. 提取多选选项矩阵(排除ID列) mr_mat <- as.matrix(df[, -1]) # 3. 计算两两选项共同选中的人数矩阵 co_occur_count <- t(mr_mat) %*% mr_mat # 4. 按行标准化得到占比矩阵(每行除以当前行对应选项的总选中人数,即矩阵对角元素) assoc_matrix <- co_occur_count / diag(co_occur_count) # 5. 可选:保留2位小数,匹配常见展示需求 assoc_matrix <- round(assoc_matrix, 2) # 输出结果 print(assoc_matrix)
输出说明
运行上述代码后得到的矩阵,行维度为基准选项,列维度为关联选项,单元格值即为选中行选项的人群中同时选中列选项的占比,完全匹配需求。
内容的提问来源于stack exchange,提问作者Mary Claire Evans
相关产品推荐
相关产品推荐

