我想删除数据框中的某些条目,并通过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
是否有解决此问题的方法?我知道常量列不会提供太多信息,因此可能会导致问题。但是,我认为这不应阻止整个归因。例如,我想到的一种更好的做法是将该常量值分配给该列中所有缺少的变量。
谢谢。