Я создаю модель dummyVars и делаю прогноз для различных данных. Если в некотором столбце этих данных содержится NA, то NA также преобразуются в разреженную матрицу. Позвольте мне привести пример.
Предположим, это мое обучение:
customers <- data.frame(
id=c(10,20,30,40,50),
gender=c('male','female','female','male','female'),
mood=c('happy','sad','happy','sad','happy'),
outcome=c(1,1,0,0,0))
dmy <- dummyVars("~.", data = customers)
Теперь вот мои данные, которые я хочу преобразовать в фиктивные переменные:
customersTest <- data.frame(
id=c(1),
gender=c('female'),
mood=as.factor(c(NA)),
outcome=c(1),
Stuff = c("bla"))
Если Я предсказываю для этих данных, что я получаю АН во всех состояниях фиктивного настроения:
trsf <- data.frame(predict(dmy, newdata = customersTest))
> id gender.female gender.male mood.happy mood.sad outcome
> 1 1 0 NA NA 1
Я хочу, чтобы эти АН также были равны 0, так как в моих данных нет ни счастливого, ни печального настроения. Поскольку у dummyVars Предиката есть опция na.action
, я пытался написать внутри себя некоторую настраиваемую функцию f
, которая заменяет все NA на нули. Это, однако, не сработало.
Есть ли способ сделать это через na.action
? Опция замены всех NA на нули в результирующем фрейме данных уже используется мной и занимает достаточно ОЗУ для больших наборов данных. Я хотел бы избавиться от этого. Спасибо!