【问题标题】:R Cannot coerce class "function" to a data.frame - Using logit results from matchit with PseudoR2R无法将类“函数”强制转换为data.frame-将matchit的logit结果与PseudoR2一起使用
【发布时间】:2020-03-04 10:17:51
【问题描述】:

我遇到了 PseudoR2 的问题,在使用 matchit 中的 logit 对象后会引发以下错误:

as.data.frame.default(data, optional = TRUE) 中的错误: 无法将“函数”类强制转换为 data.frame

它似乎可以使用正常的 logit,但即使 matchit 的 logit 在各方面看起来都相同,它也会出错。

请参阅下面的可重现示例:

## Load libraries
library(MatchIt)
library(DescTools)

## Load data
data(mtcars)

## Use matchit to match data
matched <- matchit(vs ~ mpg + cyl,
                   method = "nearest", data = mtcars)

m1 <- matched$model ## Retrieve logit data from matchit
m2 <- glm(vs ~ mpg + cyl, family = binomial(logit), data = mtcars) ## Own logit

PseudoR2(m1)
PseudoR2(m2)

【问题讨论】:

  • 我运行了你的代码,它工作得很好!也许您之前已经覆盖了一些变量?尝试重新启动 R...
  • 我无法重现该错误。上面的代码对我有用。 cannot coerce class ‘"function"’ 通常意味着您试图调用一个不存在但恰好是函数名称的对象:例如,as.data.frame(glm)
  • 感谢 cmets。重新启动 R 不起作用。由于你们俩都无法重现,我决定将 R 从 3.6.1 更新到 3.6.3。这似乎解决了问题。

标签: r dataframe


【解决方案1】:

将 R(从 3.6.1)更新到 3.6.3 似乎可以解决问题。

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 2017-07-09
    • 2021-11-13
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多