Предупреждающее сообщение - пустышка из пакета чайников - PullRequest
1 голос
/ 17 июня 2019

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

testdf<- data.frame(
  "A" = as.factor(c(1,2,2,3,3,1)),
  "B" = c('A','B','A','B','C','C'),
  "C"= c('D','D','E','D','D','E'))
#
#Generate dummy variables:
#
testdf<- cbind(testdf, dummy(testdf$C, sep='_'))
testdf<- cbind(testdf, dummy(testdf$B, sep='_'))

Для обеих команд я получаю:

Warning message:
In model.matrix.default(~x - 1, model.frame(~x - 1), contrasts = FALSE) :
  non-list contrasts argument ignored

Результаты кажутся правильными.Не могли бы вы дать совет относительно причины предупреждения?

1 Ответ

3 голосов
/ 17 июня 2019

В коде для dummy функция вызывает

mm <- model.matrix(~x - 1, model.frame(~x - 1), contrasts = FALSE)

Обратите внимание, что они передают "FALSE" аргументам contrasts= (что на самом деле является аргументом contrasts.arg=). Согласно справочной странице ?model.matrix, это должен быть список контрастов. Это не должно быть ИСТИНА / ЛОЖЬ. Обратите внимание на это дополнительное сообщение на странице справки ?model.matrix

Принимая во внимание, что недопустимые contrasts.args всегда игнорировались, о них предупреждают, начиная с версии R 3.6.0

Так что в основном пакет неправильно использовал параметр, который игнорировался в предыдущей версии R, но запуск в R 3.6 теперь вызывает предупреждение. Поведение не отличается, но предупреждение новое. Похоже, что этот пакет не обновлялся с 2012 года, поэтому он может не обновляться, чтобы предупреждение исчезло.

...