Как решить '' ошибку 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

Есть ли способ исправить эту проблему? Я понимаю, что постоянный столбец не предоставляет много информации, поэтому это может привести к проблемам. Тем не менее, я не думаю, что это должно предотвратить вменение в целом. Например, лучшей практикой, которая приходит мне в голову, было бы присваивать это постоянное значение всем отсутствующим переменным в столбце.

Заранее спасибо.

0 ответов

Другие вопросы по тегам