У меня есть фрейм данных с категориальными и числовыми переменными. Я пытаюсь однообразно преобразовать категории, в то время как цифры должны остаться без изменений.
Мне потребовалось некоторое время, чтобы воспроизвести проблему, возникающую у меня с моими собственными данными, но, очевидно, она возникла из некоторых числовых столбцов, загруженных как целые числа.
Таким образом, следующий код должен воспроизвести проблему, которую я получил:
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%, решит ли это проблему раз и навсегда. Я хочу знать причину, поэтому мне не нужно беспокоиться о каких-либо неявных ошибках данных позже. Надеюсь, я правильно здесь это решаю, если вы считаете, что эту проблему нужно решать где-то еще, пожалуйста, дайте мне знать.
Спасибо за помощь.