R语言计算分组变量相关性报错:incompatible dimensions 求解
问题解决:计算二元分类变量与连续变量的关联
报错原因
你用Reduce(cor, split(output1$SuPDem, output1$v2x_regime))报错的核心原因:
split()会生成两个长度可能不同的向量(分别对应专制组、民主组的SuPDem值)cor()计算两个向量的相关系数时要求长度完全一致,长度不匹配就会触发incompatible dimensions错误- 更关键的是,这种用法不符合你的需求——你要分析的是「政体类型(二元分类)」和「支持水平(连续)」的关联,而非两组支持水平数据的相关(后者无实际业务意义)
正确解决方案
根据你的需求,分两种场景处理:
1. 计算变量间的关联强度(点二列相关)
直接用原变量计算点二列相关系数(专门衡量二元分类变量与连续变量的关联程度):
# 可选添加use参数处理缺失值,根据数据情况调整 cor(output1$v2x_regime, output1$SuPDem, use = "complete.obs")
2. 检验两组支持水平的差异显著性
如果想验证专制/民主政体的SuPDem是否存在显著差异,用以下方法:
- 若数据满足正态性,用t检验:
t.test(SuPDem ~ v2x_regime, data = output1)
- 若不满足正态性,用Wilcoxon秩和检验:
wilcox.test(SuPDem ~ v2x_regime, data = output1)
内容的提问来源于stack exchange,提问作者user19562955
相关产品推荐
相关产品推荐

