我有两个非常简单的回归:
foo <- lm(log(y*30) ~ x, data=myDt[y > 0])
bar <- lm(log(y*30) ~ x + d1 + d2,
data=myDt[y > 0])
其中d1
,d2
是factor
个变量,很多不同的值,而myDt
是data.table
。请注意,与foo
对应的线性模型比bar
轻得多。如果有的话,bar
应该是需要时间的那个。
我可以毫无问题地运行
stargazer(bar, type='text',
omit=c('d1', 'd2'), omit.labels=c('d1', 'd2')
)
运行此过程可能需要10秒钟。使用foo
代替bar
运行它会更快。但是,如果我同时使用它们,我会陷入困境:
stargazer(foo, bar, type='text',
omit=c('d1', 'd2'), omit.labels=c('d1', 'd2')
)
。几分钟后,我放弃了。 新尝试,一小时,仍在运行。 第二次尝试:在3小时30分钟后完成:
=======================================================================
Dependent variable:
---------------------------------------------------
log(tentgelt * 30)
(1) (2)
-----------------------------------------------------------------------
x -0.00001*** 0.00001
(0.00000) (0.0001)
Constant 6.857*** 4.711***
(0.017) (1.130)
-----------------------------------------------------------------------
d1 No Yes
d2 No Yes
-----------------------------------------------------------------------
Observations 4,858 4,858
R2 0.002 0.672
Adjusted R2 0.002 0.137
Residual Std. Error 1.160 (df = 4856) 1.078 (df = 1847)
F Statistic 10.001*** (df = 1; 4856) 1.256*** (df = 3010; 1847)
鉴于带有假人的线性模型运行得相当顺利,我原本预计包含模型而没有假人不会导致这样的问题。这有什么解决方法吗?
好吧,我设法创建了一些仍然可以证明行为的虚假数据。从here下载为.csv,然后运行
myDt = as.data.table(read.csv('test.csv'))
myDt[, c('d1', 'd2'):=list(factor(d1),factor(d2))]
foo <- lm(log(y*30) ~ x, data=myDt[y > 0])
bar <- lm(log(y*30) ~ x + d1 + d2,
data=myDt[y > 0])
require(stargazer)
# this one should run quite quickly
stargazer(bar, type='text', omit=c('d1', 'd2'))
# this one takes forever.
stargazer(foo, bar, type='text', omit=c('d1', 'd2'))
答案 0 :(得分:0)
我与作者有过接触。这在包中确实是一个问题。我预计在接下来的一个月左右会有一个修复。