首页 > 解决方案 > 如何解决'' aregImpute 错误:'column_name' 是常量''

问题描述

我想删除我的数据框中的一些条目,并通过 aregImpute 函数使用剩余信息来估算它们。但是,当我在某些列中随机删除 25% 的数据时,某些列只剩下一个值(即它们每个都等于一个常数 n)。然后我收到以下错误:

Error in aregImpute(fmla, data = df_pmm_imp, n.impute = 5, nk = 0) : 
  X01154H.exp is constant

这是一个可重现的示例:

df = data.frame(replicate(10,sample(0:100,1000,rep=TRUE)))
df[,10]= 0
smp_size = floor(0.25 * nrow(df))    
set.seed(123)
missing_ind = sample(seq_len(nrow(df)), size = smp_size)
df_pmm_imp[missing_ind,c(6:10)] = NA
fmla = as.formula(paste(" ~ ", paste(names(df), collapse=" +")))
impute_arg = aregImpute(fmla , data = df, n.impute=5, nk=0)

# Error in aregImpute(fmla, data = df, n.impute = 5, nk = 0) : 
          X10 is constant

有没有办法解决这个问题?我了解常量列不能提供太多信息,因此可能会导致问题。但是,我认为它不应该阻止整个估算。例如,我想到的一个更好的做法是将该常量值分配给列中所有缺失的变量。

提前致谢。

标签: rimputationhmisc

解决方案


推荐阅读