使用mice进行NA插补时出现逻辑判断缺失值错误的原因排查
mice包NA插补报错:
missing value where TRUE/FALSE needed的原因分析 执行代码:
mice(num, method = impMethod, predictorMatrix = predMatrix, maxit = 1, m = 20, levels_id = cluster, variables_levels = level)
报错信息:
iter imp variable 1 1 VAR1Error in if (stats::sd(weight.obs) > 0) { : missing value where TRUE/FALSE needed
可能的原因:
- 权重变量存在缺失值:报错中的
weight.obs是插补时用到的权重数据,若其中包含NA,stats::sd()会返回NA,导致if判断无法得到明确的TRUE/FALSE值,触发错误。 - 权重变量有效观测不足:如果权重向量仅含1个非NA值,或所有非NA值完全相同,
stats::sd()会返回NA(单值无标准差),同样会让判断条件出现缺失值。 - 插补方法与权重不兼容:若你指定的
impMethod是依赖权重变异度的方法,当权重无变异或无法计算有效标准差时,会触发该错误。 - 聚类/层级变量配置异常:
levels_id和variables_levels用于多层聚类插补,若这些变量存在缺失,或层级划分后某个子组内的权重数据无法计算有效标准差,也会引发报错。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

