R中missCompare库执行get_data时报mdpat_count维度不正确错误
missCompare库get_data函数维度报错解决方案
Error in mdpat_count[index, ] : incorrect number of dimensions 报错的核心触发原因是missCompare::clean()输出的数据集不符合get_data()的输入要求,对应解决步骤如下:
- 校验数据集缺失值状态
先确认清洗后的数据集存在有效缺失值,避免全表无缺失、所有变量缺失率达到移除阈值的情况:
若全表缺失值总数为0,# 统计全表缺失值总数 sum(is.na(cleaned)) # 统计各列缺失值占比 colMeans(is.na(cleaned))get_data()无法生成多维度缺失值模式矩阵,直接跳过缺失值随机性检验即可。 - 修正ID类字段的转换逻辑
原代码直接将User.ID、ISBN转为数值类型会触发强制转换异常:ISBN通常包含字母、特殊符号,无法转为合法数值,会生成NA、NaN等异常值干扰后续计算,调整为因子类型即可:check2$User.ID <- as.factor(check2$User.ID) check2$ISBN <- as.factor(check2$ISBN) # 调整clean函数的变量移除阈值,避免所有变量都被过滤 cleaned <- missCompare::clean(check2, var_removal_threshold = 0.99, matrixplot_sort = FALSE) - 强制转换输入数据结构
部分场景下clean()会输出矩阵类对象,不符合get_data()的输入要求,执行结构转换后再调用函数:cleaned <- as.data.frame(cleaned) metadata <- missCompare::get_data(cleaned)
内容的提问来源于stack exchange,提问作者Anilaaryan
相关产品推荐
相关产品推荐

