使用 Stargazer 进行 6 次多元回归时,在 R 上收到此错误“in if (is.na(s)) { : the condition has length > 1 ”

问题描述 投票:0回答:2

我目前正在 R 中进行一些面板数据回归,我正在尝试使用 stargazer 并排放置多个模型

当我使用 stargazer 放置 5 个面板数据模型时,我收到一个输出

reglogglobal2 <- plm(log1p(GDP_growth) ~ log1p(CO2emissions_per_capita) + log1p(inflation) + log1p(forest_area_sq_km) + log1p(nitrous_oxide_emissions) + log1p(methane_emissions), data = pdataglobal, model = "within")
stargazer(reglogglobal2, reglogglobal, reglog32, reglog33, reglog31,reg1og56,
          type = "text",
          header = FALSE,
          no.space = TRUE)

但是当我输入 6 时,我收到此错误

enter image description here

Error in if (is.na(s)) { : the condition has length > 1

我的所有模型和数据框都已定义。这个错误是什么意思 ? 请问我该如何解决? 谢谢你

我能够使用 6 lm 模型生成观星仪输出,因此我可以确认观星仪适用于 6 个线性回归。 不确定是否是因为我使用的是面板数据。

r linear-regression panel-data stargazer olsmultiplelinearregression
2个回答
0
投票

我刚刚遇到了同样的问题,减少模型名称长度并没有解决它,但是Alexey KnorreGithub上提供的解决方案解决了它。

只需运行代码:

## Quick fix for stargazer <= 5.2.3 is.na() issue with long model names in R >= 4.2
# Unload stargazer if loaded
detach("package:stargazer",unload=T)
# Delete it
remove.packages("stargazer")
# Download the source
download.file("https://cran.r-project.org/src/contrib/stargazer_5.2.3.tar.gz", destfile = "stargazer_5.2.3.tar.gz")
# Unpack
untar("stargazer_5.2.3.tar.gz")
# Read the sourcefile with .inside.bracket fun
stargazer_src <- readLines("stargazer/R/stargazer-internal.R")
# Move the length check 5 lines up so it precedes is.na(.)
stargazer_src[1990] <- stargazer_src[1995]
stargazer_src[1995] <- ""
# Save back
writeLines(stargazer_src, con="stargazer/R/stargazer-internal.R")
# Compile and install the patched package
install.packages("stargazer", repos = NULL, type="source")

-2
投票

我不知道这对某人是否仍然有帮助,但我遇到了类似的问题,我在 Reddit 上找到了一个快速解决方案:https://www.reddit.com/r/rstats/comments/ucmtdn/issue_with_stargazer_package_after_update_to_r_420/ ?rdt=36823

显然这只是减少型号名称长度的问题。无论如何,当我更改为较短的型号名称时,它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.