【发布时间】: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。这似乎解决了问题。