Skip to content

Instantly share code, notes, and snippets.

@alexeyknorre
Created May 31, 2022 04:50
Show Gist options
  • Save alexeyknorre/b0780836f4cec04d41a863a683f91b53 to your computer and use it in GitHub Desktop.
Save alexeyknorre/b0780836f4cec04d41a863a683f91b53 to your computer and use it in GitHub Desktop.
Quick fix for stargazer <= 5.2.3 is.na() issue with long model names in R >= 4.2
## 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")
@hakuna-max
Copy link

Thank you, alexey. You've done me a big favor.

@jaschwer
Copy link

I still get an error if I include more than 4 regression results in stargazer.

@bryanpallero
Copy link

Thank you, Alexey. You save me!

@guanghwang
Copy link

Thank you, Alexey !

@AlejandroRomeroG
Copy link

Thank you so much! The tables in my thesis would not be possible without your solution. I was able to put the results of 8 Probits into a table without problems.

@Ocalak
Copy link

Ocalak commented Aug 7, 2023

Thanks a lot!!!

@XiaoruiZhu
Copy link

Great fix.

@ToniErtl
Copy link

Great fix, thank you!

@bixiou
Copy link

bixiou commented May 19, 2024

Very useful, thank you!
I have slightly adapted your patch to put it in the .Rprofile of a repository, that can be used by anyone seemlessly, even if the user already has stargazer installed:

if (!is.element("stargazer", installed.packages()[,1]) || packageVersion("stargazer") != "5.2.3.42") {
  temp <- getwd()
  setwd(.libPaths()[1])
  tryCatch({  detach("package:stargazer", unload=T)}, error = function(cond) { print("This is just a warning: stargazer not loaded yet.") } )
  tryCatch({  remove.packages("stargazer")}, error = function(cond) { print("This is just a warning: stargazer not found.") } )
  download.file("https://cran.r-project.org/src/contrib/stargazer_5.2.3.tar.gz", destfile = "stargazer_5.2.3.tar.gz")
  untar("stargazer_5.2.3.tar.gz") # If it doesn't work, re-open RStudio in administrator mode
  stargazer_src <- readLines("stargazer/R/stargazer-internal.R")
  stargazer_src[1990] <- stargazer_src[1995]
  stargazer_src[1995] <- ""
  writeLines(stargazer_src, con="stargazer/R/stargazer-internal.R")
  stargazer_description <- readLines("stargazer/DESCRIPTION")
  stargazer_description[4] <- "Version: 5.2.3.42"
  writeLines(stargazer_description, con="stargazer/DESCRIPTION")
  install("stargazer")
  setwd(temp)
}
library(stargazer)

@LCroninATU
Copy link

@alexeyknorre thank you soooo much, your generosity in sharing this solution has restored my faith in humanity. Have a great week

@d67373upup
Copy link

My hero!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment