-1

我有两个非常简单的回归:

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变量并且是. 请注意,对应的线性模型比 轻得多。如果有的话,应该是需要时间的。myDtdata.tablefoobarbar

我可以毫无问题地运行

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')
          )

. 几分钟后,我放弃了。新尝试,一小时,仍在运行第二次尝试:3h30 分钟后完成

=======================================================================
                                    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)

考虑到带假人的线性模型运行得相当顺利,我曾期望包含不带假人的模型不会引起这样的问题。有什么解决方法吗?

可重现的例子

好吧,我设法创建了一些仍然可以证明行为的假数据。从这里下载为 .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'))
4

1 回答 1

0

我和作者有联系。这确实是包中的一个问题。我预计在下个月左右会得到修复。

于 2015-05-07T11:07:33.710 回答