Created
May 31, 2022 04:50
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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") |
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)
@alexeyknorre thank you soooo much, your generosity in sharing this solution has restored my faith in humanity. Have a great week
My hero!!!!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Great fix, thank you!