Ошибка в na.interpolation (data [, i], опция): ввод x не является числовым - PullRequest
0 голосов
/ 24 августа 2018

У меня следующая проблема. У меня есть data.frame, состоящий из «идентификатора» страны (буквы + цифры), «года» (цифры), «уникального идентификатора» (идентификатор + год), статистики «market1» (цифры) и статистики «market2» «(цифры), где некоторые данные для рынка труда2 отсутствуют и должны быть интерполированы. После запуска библиотеки (imputeTS) я получаю следующее сообщение:

библиотека (imputeTS) Предупреждающее сообщение: Неизвестный или неинициализированный столбец: 'x'.

После запуска

данные <- нет.интерполяция (данные) </p>

Я получаю следующие ошибки:

Предупреждающие сообщения: 1: неизвестный или неинициализированный столбец: 'x'. 2: imputeTS: для столбца 1 не выполнено вменение из-за этой ошибки> в na.interpolation (data [, i], опция): ввод x не является числовым

3: imputeTS: для столбца 2 не выполнено вменение из-за этой ошибки> в na.interpolation (data [, i], опция): ввод x не является числовым

4: imputeTS: для столбца 3 не выполнено вменение из-за этой ошибки> в na.interpolation (data [, i], опция): ввод x не является числовым

5: imputeTS: для столбца 5 не выполнено вменение из-за этой ошибки> в na.interpolation (data [, i], опция): ввод x не является числовым

Что интересно, перестал работать na.interpolation (data) после того, как я обновил версию R с 3.2.3 до последней версии 3.5.1 (2018-07-02) - «Спрей для перьев».

Интересно, есть ли решение избавиться от предупреждения и выполнить интерполяцию, не возвращаясь к более старой версии R.

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

1 Ответ

0 голосов
/ 25 сентября 2018

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

list_imputed_values <- lapply(list_of_dataframes, function(x){
if (ncol(x) == 3) { # apply imputation to the third column only
name <- names(x)[3]
fixed <- x[, 1:2]
imputable <- x[, 3]
imputed <- as.data.frame(imputeTS::na.interpolation(imputable))
names(imputed) <- name
x <- cbind(fixed, imputed)
} else if (ncol(x) == 2) { # do not apply imputation because columns are non-numeric
x <- x[, 1:2]
 } else {  # apply imputation to all non-numeric columns
fixed <- x[, 1:2]
imputable <- x[, 3:ncol(x)]
imputed <- imputeTS::na.interpolation(imputable)
x <- cbind(fixed, imputed)
  }})
...