R:创建多个回归输出的可发布表

如何解决R:创建多个回归输出的可发布表

我本来要分析一篇论文的数据,现在已经获得了多元线性回归的结果。但是,R提供的摘要并没有真正在最终论文中发表。另外,我还以几种不同的方式指定了一个变量,以展示结果的稳健性。

我可以在R中创建一个不错的,可导出的表,其中包含变量名(理想情况下还允许以更具信息性的方式命名变量),估计值,标准误差,鲁棒的标准误差p值以及理想情况下的重要性指标?例如:

我有类似这样的摘要输出:

Residuals:
    Min      1Q  Median      3Q     Max 
-50.868  -4.644   1.583   7.054  20.490 

Coefficients:
                           Estimate Std. Error t value Pr(>|t|)  
(Intercept)               4.710e+01  1.848e+01   2.549   0.0136 *
Var1                     -8.588e-01  2.201e+00  -0.390   0.6979  
Var2                      2.486e+00  1.055e+00   2.357   0.0220 *
log(specification1)       3.376e+00  2.152e+00   1.569   0.1223  
Var4                     -3.651e-04  2.797e-04  -1.305   0.1971  
Var5                      4.809e+00  2.654e+00   1.812   0.0753 .
Var6                     -8.706e+00  6.972e+00  -1.249   0.2170  
Var7                     -8.172e+00  5.755e+00  -1.420   0.1612  
Var8                     -3.276e+00  7.067e+00  -0.463   0.6448  
Var9                     -1.477e+01  7.849e+00  -1.882   0.0650 .

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residuals:
    Min      1Q  Median      3Q     Max 
-48.881  -5.699   0.956   8.947  17.888 

Coefficients:
                           Estimate Std. Error t value Pr(>|t|)  
(Intercept)               4.258e+01  1.750e+01   2.405   0.0195 *
Var1                      4.298e-01  2.120e+00   0.200   0.8421  
Var2                      5.179e+00  1.027e+00   2.122   0.0271 *
log(specification 2)      2.050e+00  9.435e-01   2.173   0.0338 *
Var4                     -1.420e-04  2.261e-04  -1.513   0.1356  
Var5                      4.584e+00  2.511e+00   1.826   0.0730 .

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

我想去一张看起来像这样的桌子:

             Model1                                             Model2
Intercept    Estimate  Std.Error  p robust_Std.Error robust_p  Estimate  Std.Error  p  robust ...
Var1
Var2
Var3
Var4
Var5
Var6
Var7
Var8
Var9

其中的列当然包含估计值。有一个功能/包能很好地做到这一点吗?

预先感谢

解决方法

我建议您使用broom软件包,如下所示:

fit1 <- lm(mpg ~ .,mtcars)
broom::tidy(fit1)

# # A tibble: 11 x 5
#    term        estimate std.error statistic p.value
#    <chr>          <dbl>     <dbl>     <dbl>   <dbl>
#  1 (Intercept)  12.3      18.7        0.657  0.518 
#  2 cyl          -0.111     1.05      -0.107  0.916 
#  3 disp          0.0133    0.0179     0.747  0.463 
#  4 hp           -0.0215    0.0218    -0.987  0.335 
#  5 drat          0.787     1.64       0.481  0.635 
#  6 wt           -3.72      1.89      -1.96   0.0633
#  7 qsec          0.821     0.731      1.12   0.274 
#  8 vs            0.318     2.10       0.151  0.881 
#  9 am            2.52      2.06       1.23   0.234 
# 10 gear          0.655     1.49       0.439  0.665 
# 11 carb         -0.199     0.829     -0.241  0.812 

它将从tibble函数的输出中提取lm


如果您有多个模型,并且想将所有小标题和常用术语一起设置,则可以通过以下方式进行处理:

创建模型列表x

fit1 <- lm(mpg ~ cyl + disp + gear,mtcars)
fit2 <- lm(mpg ~ cyl + hp   + drat,mtcars)

x <- list(fit1,fit2)

您可以使用以下解决方案:

library(purrr)
library(dplyr)
library(stringr)

# set names for the list
names(x) <- paste("Model",seq_along(x),sep = "_")

# tidy them up
x <- map(x,broom::tidy)

# set the list names at the beginning of each column
x <- imap(x,~set_names(.x,paste(.y,names(.x),sep = "_")))

# rename each term column as "term"
x <- map(x,~rename_with(.x,str_replace,pattern = ".*term",replacement = "term"))

# join them all together
reduce(x,full_join,by = "term")

它返回您要求的输出:

# A tibble: 6 x 9
  term        Model1_estimate Model1_std.error Model1_statistic Model1_p.value Model2_estimate Model2_std.error Model2_statistic Model2_p.value
  <chr>                 <dbl>            <dbl>            <dbl>          <dbl>           <dbl>            <dbl>            <dbl>          <dbl>
1 (Intercept)         34.0              4.76              7.13    0.0000000925         22.5              7.99               2.82        0.00880
2 cyl                 -1.59             0.724            -2.20    0.0366               -1.36             0.735             -1.85        0.0747 
3 disp                -0.0200           0.0109           -1.83    0.0774               NA               NA                 NA          NA      
4 gear                 0.158            0.910             0.174   0.863                NA               NA                 NA          NA      
5 hp                  NA               NA                NA      NA                    -0.0288           0.0153            -1.88        0.0704 
6 drat                NA               NA                NA      NA                     2.84             1.52               1.87        0.0725 

如果您的列表具有两个以上的模型,则代码将是稳定的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-