【问题标题】:Warning message - dummy from dummies package警告信息 - 来自 dummies 包的 dummy
【发布时间】:2019-10-31 09:27:21
【问题描述】:

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

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

【问题讨论】:

    标签: r dummy-variable contrast model.matrix


    【解决方案1】:

    在dummy的代码中,函数调用

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

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

    虽然无效的 contrasts.args 一直被忽略,但自 R 版本 3.6.0 起会警告它们

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

    【讨论】:

    • 这是一个非常详细的答案,感谢您的关注。这是一个很好的提醒,软件包和程序并不完美,并且会不断发展,我会继续关注它们是否从现在开始维护。
    猜你喜欢
    • 1970-01-01
    • 2022-08-10
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多