我目前正在 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 时,我收到此错误
Error in if (is.na(s)) { : the condition has length > 1
我的所有模型和数据框都已定义。这个错误是什么意思 ? 请问我该如何解决? 谢谢你
我能够使用 6 lm 模型生成观星仪输出,因此我可以确认观星仪适用于 6 个线性回归。 不确定是否是因为我使用的是面板数据。
我刚刚遇到了同样的问题,减少模型名称长度并没有解决它,但是Alexey Knorre在Github上提供的解决方案解决了它。
只需运行代码:
## 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")
我不知道这对某人是否仍然有帮助,但我遇到了类似的问题,我在 Reddit 上找到了一个快速解决方案:https://www.reddit.com/r/rstats/comments/ucmtdn/issue_with_stargazer_package_after_update_to_r_420/ ?rdt=36823
显然这只是减少型号名称长度的问题。无论如何,当我更改为较短的型号名称时,它对我有用。