警告消息 - 来自 dummies 包的 dummy

Warning message - dummy from dummies package

我正在使用 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

虽然结果似乎是正确的。您能否就警告的原因提出建议?

dummy 的代码中,函数调用

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

请注意,他们将 "FALSE" 传递给 contrasts= 参数(实际上是 contrasts.arg= 参数)。根据 ?model.matrix 帮助页面,这应该是一个对比列表。它不应该是 TRUE/FALSE 值。请注意帮助页面 ?model.matrix

中的这条附加消息

Whereas invalid contrasts.args have been ignored always, they are warned about since R version 3.6.0

所以基本上这个包错误地使用了一个参数,这个参数在以前的 R 版本中被默默地忽略了,但是从 R 3.6 开始现在会触发警告。行为没有任何不同,但警告是新的。看起来该软件包自 2012 年以来就没有更新过,因此它可能永远不会更新以使警告消失。