首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出可发表论文的R回归总结

导出可发表论文的R回归总结
EN

Stack Overflow用户
提问于 2015-05-10 04:34:28
回答 2查看 27.5K关注 0票数 15

我在R中有多个回归模型,我想用一个很好的表格格式来总结这个模型,它可以包含在出版物中。我已经准备好了所有的结果,但无法找到导出它们的方法,而且手工完成这一操作是不有效的,因为我需要大约20个表。

所以,我的一个模型是:

代码语言:javascript
复制
felm1=felm(ROA~BC+size+sizesq+age | stateyeard+industryyeard, data=data)

我在R中得到了理想的总结。

但是,我想要的是在表中只包含以下内容,括号中包含t-统计量的估计数,以及意义代码(*、等)。

是否有一种方法可以创建包含上述内容的任何类型的表?莱克斯,excel,word,.rft,任何真正的事情。

更好的是,我拥有的另一个模型是(有些变量不同):

代码语言:javascript
复制
felm2=felm(ROA~BC+BCHHI+size+sizesq+age | stateyeard+industryyeard, data=data)

我是否可以在一个表中汇总两个回归(其中相同的变量将位于同一行,而其他变量将生成空单元格)?

先谢谢你,我会感谢你的任何帮助。

下面是一个可重复的例子:

代码语言:javascript
复制
 x<-rnorm(1:20)

 y<-(1:20)/10+x

 summary(lm(y~x))



   Coefficients:
            Estimate Std. Error t value Pr(>|t|)    

(Itercept)  1.0539     0.1368   7.702 4.19e-07 ***

  x         1.0257     0.1156   8.869 5.48e-08 ***

这是R中的结果,我希望表中的结果看起来像

代码语言:javascript
复制
 (Itercept)  1.0539*** (7.702)
      X      1.0257*** (8.869)

这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2015-05-10 09:20:57

Broom软件包非常适合制作回归表,用于出口。然后,可以将结果导出到csv,以便使用Excel编写,也可以使用Rmarkdown和针织品中的可选功能来生成Word文档(或乳胶)。

代码语言:javascript
复制
require(broom) # for tidy()
require(knitr) # for kable()

x<-rnorm(1:20)

y<-(1:20)/10+x

model <- lm(y~x)
out <- tidy(model)
out
        term estimate std.error statistic      p.value
1 (Intercept) 1.036583 0.1390777  7.453261 6.615701e-07
2           x 1.055189 0.1329951  7.934044 2.756835e-07

kable(out)


|term        | estimate| std.error| statistic| p.value|
|:-----------|--------:|---------:|---------:|-------:|
|(Intercept) | 1.036583| 0.1390777|  7.453261|   7e-07|
|x           | 1.055189| 0.1329951|  7.934044|   3e-07|

我应该提到,我现在使用优秀的pixiedust导出回归结果,因为它允许更好地控制输出,允许用户在R中做更多的事情,而在任何其他包中做得更少。

看“克伦”上的小故事

代码语言:javascript
复制
library(dplyr) # for pipe (%>%) command
library(pixiedust)

dust(model) %>% 
      sprinkle(cols = c("estimate", "std.error", "statistic"), round = 2) %>%
      sprinkle(cols = "p.value", fn = quote(pvalString(value))) %>% 
      sprinkle_colnames("Term", "Coefficient", "SE", "T-statistic", 
                        "P-value")

         Term Coefficient   SE T-statistic P-value
1 (Intercept)        1.08 0.14        7.44 < 0.001
2           x        0.93 0.14        6.65 < 0.001
票数 17
EN

Stack Overflow用户

发布于 2015-05-10 09:17:20

对于文本表,请尝试如下:

代码语言:javascript
复制
x<-rnorm(1:20)
y<-(1:20)/10+x
result <- lm(y~x)

library(stargazer)
stargazer(result, type = "text")

结果..。

代码语言:javascript
复制
===============================================
                        Dependent variable:    
                    ---------------------------
                                 y             
-----------------------------------------------
x                            0.854***          
                              (0.108)          

Constant                     1.041***          
                              (0.130)          

-----------------------------------------------
Observations                    20             
R2                             0.777           
Adjusted R2                    0.765           
Residual Std. Error       0.579 (df = 18)      
F Statistic           62.680*** (df = 1; 18)   
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

对于多元回归,只需做

代码语言:javascript
复制
stargazer(result, result, type = "text")

而且,仅仅是为了取得所要求的结果。

代码语言:javascript
复制
addStars <- function(coeffs) {
  fb <- format(coeffs[, 1], digits = 4)
  s <- cut(coeffs[, 4],
           breaks = c(-1, 0.01, 0.05, 0.1, 1),
           labels = c("***", "**", "*", ""))
  sb <- paste0(fb, s)
}
addPar <- function(coeffs) {
  se <- format(coeffs[, 2], digits = 3)
  pse <- paste0("(", se, ")")
}
textTable <- function(result){
  coeffs <- result$coefficients
  lab <- rownames(coeffs)
  sb <- addStars(coeffs)
  pse <- addPar(coeffs)
  out <- cbind(lab,sb, pse)
  colnames(out) <- NULL
  out
}
print(textTable(result), quote = FALSE)

一旦您有了一个文本表,就可以使用xtable::xtableHmisc::latexGmisc::htmltable等。有人在评论中发布了一个链接。:)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30147756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档