警告消息 - 来自假人包的假人

Max*_*_IT 6 r contrast model.matrix dummy-variable

我正在使用 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='_'))
Run Code Online (Sandbox Code Playgroud)

对于这两个命令,我得到:

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

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

MrF*_*ick 18

在 的代码中dummy,函数调用

mm <- model.matrix(~x - 1, model.frame(~x - 1), contrasts = FALSE)
Run Code Online (Sandbox Code Playgroud)

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

而无效的contrasts.args 一直被忽略,他们被警告自R 3.6.0 版

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