R中使用polr时出现Stargazer错误

3

我在使用R中的MASS包中的polrstargazer一起使用时遇到了错误。这里是一个例子:

library(MASS)
library(stargazer)

# Fake data
set.seed(1234)
fake_data <- data.frame(y = as.factor(sample.int(4, 20, replace = TRUE)),
                        x1 = rnorm(20, mean = 1, sd = 1),
                        x2 = rnorm(20, mean = -1, sd = 1))

# Ordered logistic regression
o_log <- MASS::polr(y ~ x1 + x2,
                    data = fake_data,
                    Hess = TRUE, method = "logistic")

summary(o_log)

# Create regression table
stargazer(o_log)

我收到以下错误信息:
% Error: Unrecognized object type.

有人知道如何解决这个问题吗?先谢谢了。

P.S.:我用的是OS X 10.13,使用R 3.4.3,MASS 7.3.47和stargazer 5.2。

编辑:根据stargazer的说明文档,应支持来自polr的对象。


哪一行代码出错了? - John Coleman
最后一次调用,即stargazer(o_log)。 - Dan
似乎是stargazer包中的一个错误。当我在Windows上运行它时,我会收到相同的错误消息,并且您正确指出stargazer()的文档表明它应该与polr类的对象一起使用。我对该软件包不太了解,无法建议解决方法。 - John Coleman
这里的错误似乎是stargazer使用$call来确定对象类型。请参见https://dev59.com/Fobca4cB1Zd3GeqPbeCf - Frank
3个回答

1
我猜这是因为您没有加载MASS库,而是使用::调用了该函数。 MASS库对polrsummary功能进行了一些更新,stargazer使用它来生成表格。如果不加载库,则不会发生更新,因此会给您在stargazer中带来一些麻烦。

1

我不知道原因,但当我将MASS::polr更改为plor时,错误被解决了,它能正常工作。看起来这是stargazer包的一个bug。


建议中的 plor 可能是打错了,应该是 polr - lillemets

1
我遇到了相同的问题。出于某种奇怪的原因,只有在使用::调用函数时(在您的情况下为MASS::polr),才会发生这种情况。当您首先通过library(MASS)加载包并然后调用特定函数时,不会发生这种情况。
参见:为什么使用library(MASS)与MASS::时会得到不同的结果?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接