Я использую Arthritis
набор данных от vcd
пакет для выполнения одного горячего кодирования. Я хотел бы использовать purrr::dmap_if
и Matrix::model.matrix
вместе для этого. Когда я запускаю`dmap_if` и 'model.matrix' вместе
do.call(model.matrix, list(Improved~.,Arthritis))
работающий отлично.
Когда я использую ниже код не работает
Arthritis %>% dmap_if(is.factor, do.call(model.matrix, list(Improved~., .)))
Как насчет 'держать' и' вызывать' вместо 'dmap_if'? 'Arthritis%>% keep (is.factor)%>% invoke (model.matrix, Improved ~., Data =.)'. Функция 'invoke' - это просто обертка вокруг' do.call', чтобы упростить ее использование в трубе. – aosmith
Спасибо, не могли бы вы мне помочь, как получить все уровни, без перехвата. Он отбрасывает один уровень для каждой переменной. – BigDataScientist
Вы можете удалить перехват, используя '-1' в формуле' model.matrix'. Однако это, вероятно, еще не совсем то, что вы хотите. Вы можете задать новый вопрос конкретно о том, как получить то, что вы хотите от 'model.matrix' (или, в более общем плане, вопрос о том, какой результат вам нужен и почему). – aosmith