17
0
cdsc_examples_repository/R_examples/automation/OnYourMachine/lib-00-utils.R
2024-02-04 19:20:03 -08:00

82 lines
1.8 KiB
R

library(data.table)
library(parallel)
## how remember works:
## pass it a variable you want to keep
## it will store it in a list
## then at the bottom of your R document
## add the following:
##
##
##
# if (!nosave) {
## setup for the next thing to save
#r <- list()
## save the output and clean up
#remember(core.reg.table, "core.reg.table.tex")
#remember(model.sums, silent=TRUE)
## also save a copy of editsweeks that we used to fit these models
#remember(d, "editweeks")
#save(r, file="paper/knitr_rdata/02-models_for_presentation.RData")
#rm(r)
#}
##
##
##
remember <- function (v, k, silent=FALSE) {
if (missing(k)) {
k <- deparse(substitute(v))
}
## save to the global r variable/list
r[[k]] <<- v
if (!silent) {
print(r[[k]])
flush.console()
}
invisible(r[[k]])
## return(r[[k]])
}
## function help with building reduced summaries
reduced.summary <- function (m) {
magic.pattern <- "(wikia.com|jedipedia.de)"
if (class(m)[1] == "coeftest") {
x <- do.call(cbind, lapply(1:4, function (i) {m[,i]}))
rownames(x) <- names(m[,1])
colnames(x) <- c("Estimate","Std. Error","z value","Pr(>|z|)")
} else {
x <- coef(summary(m))
}
if (!class(x) == "list") {
x <- list(x)
}
out <- lapply(x, function (y) { y[!grepl(magic.pattern, rownames(y)),] })
## it's possible that this will only include one line/parameter (blocked)
if (class(out[[1]]) == "numeric") {
out <- lapply(out, function (y) {
y <- as.data.frame(rbind(y))
rownames(y) <- "blocked"
return(y)
})
}
Lower.95 <- round(out[[1]][,1] - (1.96*out[[1]][,2]),2)
Upper.95 <- round(out[[1]][,1] + (1.96*out[[1]][,2]),2)
cbind(out[[1]], Lower.95, Upper.95)
}
## make sure that appendix and nosave are always defined
if (!exists("appendix")) { appendix <- FALSE }
if (!exists("nosave")) { nosave <- FALSE }