首页 > 解决方案 > 仅在 rmarkdown 中运行 rchunk 时,stargazer 错误“无法更改 NULL 的长度”

问题描述

我在我大学的 rstudio pro 服务器上使用 Rmarkdown 教授计量经济学,运行 R 3.6.3。每当我使用 stargazer 运行 rchunk 来显示回归结果时,我都会在表格前得到一个错误的序言。这是代码的复制和粘贴以及运行代码块后的确切结果:

lm.1 <- lm(mpg ~ cyl,data=mtcars)
stargazer(lm.1,type="text")

NULL的长度不能改变NULL的长度不能改变NULL的长度不能改变NULL的长度不能改变NULL的长度不能改变

===============================================
                        Dependent variable:    
                    ---------------------------
                                mpg            
-----------------------------------------------
cyl                          -2.876***         
                              (0.322)          

Constant                     37.880***         
                              (2.074)          

-----------------------------------------------
Observations                    32             
R2                             0.726           
Adjusted R2                    0.717           
Residual Std. Error       3.206 (df = 30)      
F Statistic           79.560*** (df = 1; 30)   
===============================================
Note:               *p<0.1; **p<0.05; ***p<0.01

无论我使用 type= text、html 还是 latex,都会发生此错误。

虽然错误没有出现在 knitted 报告中,但学生们所做的大部分工作只是简单地运行 r 块。并且,因此每个学生在他们看到的每个回归结果表之前都会以鲜红色的文本获得错误的序言。对说服他们没有帮助 R 及其有用的软件包是用于编写统计报告的现代、稳定和专业的工具。

有谁知道什么可能导致观星者出现这个错误以及如何摆脱它?

编辑:回复@J_F(感谢您的评论)

这是 sessionInfo() 输出:

会话信息()

R 版本 3.6.3 (2020-02-29) 平台:x86_64-pc-linux-gnu (64-bit) 运行于:Ubuntu 18.04.4 LTS

矩阵产品: 默认 BLAS:/usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 LAPACK:/usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1

语言环境:[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US。 UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

附加的基础包:[1] stats graphics grDevices utils datasets methods base

其他附加软件包:[1] stargazer_5.2.2

通过命名空间加载(未附加):[1] compiler_3.6.3 tools_3.6.3 knitr_1.27 xfun_0.12

这是我的 .rmd 文件的全部内容:

---
title: "stargazer test"
output: html_document
---
library(stargazer)
knitr::opts_chunk$set(echo = TRUE)
lm1 <- lm(mpg ~ cyl, data = mtcars)
stargazer(lm1,type="text")

标签: error-handlingr-markdownstargazer

解决方案


我也一直有这个问题。无法找出消息的来源,但如果您想隐藏警告消息,您可以在第二个块中为整个文档关闭它们:

knitr::opts_chunk$set(echo = TRUE, warning = FALSE)

或通过将 stargazer 调用包装在 suppressWarnings() 中


推荐阅读