Skip to content

Instantly share code, notes, and snippets.

View nutterb's full-sized avatar

Benjamin nutterb

  • Battelle Memorial Institute
  • Kentucky
View GitHub Profile
@nutterb
nutterb / missingSummary.R
Last active March 7, 2023 21:47
Generate a Report of Fields with Missing Values in a REDCap Database Using the redcapAPI package
#### Intended for use with the `redcapAPI` package
#' @name missingSummary
#' @aliases missingSummary.redcapApiConnection
#' @aliases missingSummary.redcapDbConneciton
#' @aliases missingSummary_offline
#' @export missingSummary
#' @export missingSummary.redcapApiConnection
#' @export missingSummary.redcapDbConnection
#' @export missingSummary_offline
#'
@nutterb
nutterb / ggSurvGraph.R
Last active August 29, 2015 14:16
Customizable Survival Curves in ggplot2
#* More examples at https://gist.github.com/nutterb/fb19644cc18c4e64d12a
#' @name ggSurvGraph
#' @export ggSurvGraph
#' @import ggplot2
#' @importFrom grid unit
#' @importFrom gridExtra grid.arrange
#' @importFrom plyr arrange
#' @importFrom plyr ddply
#' @importFrom reshape2 melt
#' @importFrom zoo na.locf
@nutterb
nutterb / ggSurvGraph_Examples.R
Created March 10, 2015 13:19
Examples using ggSurvGraph
#* You'll have to source in the function code from the gist
#* https://gist.github.com/nutterb/004ade595ec6932a0c29
library(ggplot2)
install.packages("KMsurv")
data(kidney, package="KMsurv")
fit <- survfit(Surv(time, delta) ~ type, data=kidney)
ggSurvGraph(fit)
ggSurvGraph(fit, conf.bar=FALSE)
library(dplyr)
library(tidyr)
choose_partner <- function(People){
Males <- filter(People, gender == "M")
Females <- filter(People, gender == "F")
if (nrow(Males) <= nrow(Females)){
Males$partner_id <- sample(Females$id, nrow(Males))
People <- full_join(Males, Females,
pi_birthdays <- function(birthdate, n = 1:30, format = "%Y-%m-%d"){
if (!is.Date(birthdate) | !is.POSIXct(birthdate)){
birthdate <- as.Date(birthdate, format = format)
}
data.frame(n_pi = n,
pi_date = birthdate + 365.2425 * n * pi)
}
@nutterb
nutterb / Rectangles.R
Created October 23, 2015 13:00
Speed comparisons for different methods of comparing rectangles
#* A broader experiment on this stack overflow question
#* http://stackoverflow.com/questions/33298196/how-to-avoid-a-double-for-loop-when-accessing-all-combinations-of-colums-of-a-ma/33301080?noredirect=1#comment54403634_33301080
#* I really need to find something better to do with my Friday mornings
#* Change n to make a larger experiment
n <- 1000
#* Change reps to run more cycles in 'microbenchmark'
reps <- 10
@nutterb
nutterb / saveNullDate
Created January 31, 2016 01:36
dateInput save as NULL
library(shiny)
ui <- shinyUI(
fluidPage(
dateInput(inputId = "date",
label = "Signature Date",
value = ''),
actionButton(inputId = "save_signature",
label = "Print Signature"),
verbatimTextOutput("date_value"),
@nutterb
nutterb / Example Input
Created April 8, 2016 00:47
Shiny Real-time markdown rendering
# Copy and paste the code below into the textArea input when the application is running.
# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
It would be really helpful to include a link to a markdown cheat sheet. [This is a good example](http://support.mashery.com/docs/read/customizing_your_portal/Markdown_Cheat_Sheet) of where to get a good rundown of basic markdown.
@nutterb
nutterb / directorySearch
Created April 8, 2016 13:27
When I'm developing packages, sometimes I just want to find the files that contain a particular variable. This helps me search all of the files for the existence of a string pattern.
directorySearch <- function(dir, pattern, ...)
{
files <- list.files(dir)
suppressWarnings(
Code <- lapply(file.path(dir, files),
readLines)
)
files[vapply(Code,
@nutterb
nutterb / medley_all_border.R
Last active April 8, 2016 16:27
A LaTeX safe approach to applying borders to all cells using pixiedust
medley_all_border <- function(x, part = c("table"))
{
part <-
match.arg(part,
c("table", "head", "body", "interfoot", "foot"),
several.ok = TRUE)
part <-
if ("table" %in% part)
{
c("head", "body", "interfoot", "foot")