АН в пакете чайников
Я использую функцию R dummy.data.frame в пакете dummies для создания фиктивных переменных для k уровней моего фактора. К сожалению, мой фактор имеет NA. Когда я использую dummy.data.frame, он создает k манекенов без NA и новый манекен, который помечает 1 отсутствующими значениями. Тем не менее, я хотел бы, чтобы все еще были NA в k манекенах, а не манекен для пропущенных значений.
Это возможно с этой функцией? Знаете ли вы какие-либо другие функции, которые могут мне помочь?
1 ответ
Я обычно делаю такие вещи, используя model.matrix()
, Использование этого с параметром na.action, установленным на pass, сохранит NA в их правильных местах. Эта опция, похоже, не меняет поведение функции dummy()
так что используя model.matrix()
может быть, ваша самая легкая ставка. Например, для однофакторных букв следует выполнить следующее:
options(na.action="na.pass")
letters <- c( "a", "a", "b", "c", "d", "e", "f", "g", "h", "b", "b", NA )
model.matrix(~letters-1)
Или для нескольких переменных или столбцов фрейма данных:
letters <- c( "a", "a", "b", "c", "d", "e", "f", "g", "h", "b", "b", NA )
betters <- c( "a", "a", "c", "c", "c", "d", "d", "d", NA, "e", "e", "e" )
model.matrix(~letters+betters-1)
Важный трюк здесь действительно заключается в установке опции na.action. После этого фиктивного перекодирования рекомендуется вернуть параметру значение по умолчанию:
options(na.action="na.omit")