onehot конвертирует NA в произвольные числа - PullRequest
0 голосов
/ 01 октября 2019

У меня есть фрейм данных с категориальными и числовыми переменными. Я пытаюсь однообразно преобразовать категории, в то время как цифры должны остаться без изменений.

Мне потребовалось некоторое время, чтобы воспроизвести проблему, возникающую у меня с моими собственными данными, но, очевидно, она возникла из некоторых числовых столбцов, загруженных как целые числа.

Таким образом, следующий код должен воспроизвести проблему, которую я получил:

library(onehot)

set.seed(123)

d_tmp<-data.frame(a=as.integer(sample(c(120, 94, 140, 100, 130, NA),10, replace = T)),
 b=sample(c("I", "II", NA), 10, replace=T))

data.frame(predict(onehot(d_tmp), d_tmp))

Результат:

1          140   0    1
2  -2147483648   1    0
3          140   0    1
4           94   0    0
5           94   1    0
6  -2147483648   0    0
7          140   0    0
8          130   1    0
9          100   1    0
10 -2147483648   1    0

Таким образом, значения NA заменяются на некоторые крайне отрицательные числа, которыекажется произвольным для меня. При попытке воспроизвести фрейм данных, я решил, что это произойдет, только если я добавлю as.integer () к созданию фрейма данных (мои собственные исходные данные по умолчанию загружаются как целые числа).

Почему это происходит? И как мне справиться с этим надежно? Конечно, я мог бы преобразовать все числовые столбцы в числовые, однако я не уверен на 100%, решит ли это проблему раз и навсегда. Я хочу знать причину, поэтому мне не нужно беспокоиться о каких-либо неявных ошибках данных позже. Надеюсь, я правильно здесь это решаю, если вы считаете, что эту проблему нужно решать где-то еще, пожалуйста, дайте мне знать.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...