如何让观星者在分配时不运行

Posted

技术标签:

【中文标题】如何让观星者在分配时不运行【英文标题】:How to make stargazer not to run while assigning 【发布时间】:2021-03-22 20:56:08 【问题描述】:

我们来获取数据:

library(plm)
library(stargazer)
# Create some random data
set.seed(1) 
x=rnorm(100); fe=rep(rnorm(10),each=10); id=rep(1:10,each=10); ti=rep(1:10,10); e=rnorm(100)
y=x+fe+e

data=data.frame(y,x,id,ti)

# Get plm within R2
summary.plm.full(plm(y~x,model="within",index=c("id","ti"), effect = "twoways", data=data))


data=data.frame(y,x,id,ti)

# Get plm within R2
reg=plm(y~x,model="pooling",index=c("id","ti"), effect = "individual", data=data) 
k <- stargazer(reg, type = "text", 
          add.lines = list(c("Overall R2", round(r.squared(reg, model = "within"), 3)),
                           c("Between R2", round(r.squared(update(reg, effect = "individual", model = "between")), 3)))) 

输出:

========================================
                 Dependent variable:    
             ---------------------------
                          y             
----------------------------------------
x                     1.183***          
                       (0.168)          
                                        
Constant               0.308**          
                       (0.151)          
                                        
----------------------------------------
Overall R2              0.53            
Between R2              0.174           
Observations             100            
R2                      0.337           
Adjusted R2             0.330           
F Statistic    49.751*** (df = 1; 98)   
========================================
Note:        *p<0.1; **p<0.05; ***p<0.01

但是当我没有运行任何东西时,为什么我有一个 stargazer 的输出。我什至在分配时,stargazer 似乎会给出输出。我应该怎么做才能让stargazer在分配时不运行?

【问题讨论】:

【参考方案1】:

查看.stargazer.wrap()(被stargazer()调用)的源代码,这是因为cat()被广泛使用并且总是打印到控制台,即使分配了。

例子:

x <- cat("hello")

结果:

hello

因此,您在不打印的情况下分配stargazer() 的输出的唯一方法是要求包维护人员修改函数,但我怀疑他/她会这样做,因为cat() 在整个函数中都非常常用(并且该软件包在过去两年半内没有修改过)。

您可以查看texreg 作为stargazer 的替代品。

【讨论】:

以上是关于如何让观星者在分配时不运行的主要内容,如果未能解决你的问题,请参考以下文章

编译器如何在编译时不知道大小的情况下分配内存?

为啥这个对象在分配其他东西时不通过引用传递?

TypeError:“DataFrame”对象在使用除法时不支持项目分配

程序编译后运行时的内存分配

程序编译后运行时的内存分配

通过 JavaScript 分配 CSS 转换时不起作用