警告消息-虚拟包中的假人

时间:2019-06-17 18:48:24

标签: r dummy-variable contrast model.matrix

我正在使用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 个答案:

答案 0 :(得分:3)

dummy的代码中,该函数调用

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

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

中的此附加消息
  

鉴于无效的compares.args总是被忽略,但是从R版本3.6.0开始会对其发出警告

因此,基本上,程序包错误地使用了一个参数,该参数在R的早期版本中被忽略,但是从R 3.6开始,现在会触发警告。行为没有什么不同,但是警告是新的。似乎该软件包自2012年以来就没有更新过,因此它可能永远也不会得到更新以使警告消失。