Skip to content

Instantly share code, notes, and snippets.

View dmolitor's full-sized avatar
🍂

Daniel Molitor dmolitor

🍂
View GitHub Profile
@dmolitor
dmolitor / py_algo.py
Created October 24, 2025 15:47
Python algo snippets
def rearrange(input: str, order: str) -> str:
output = []
for char in order:
[output.append(x) for x in input if x == char]
return ''.join(output)
rearrange("abcab", "bca")
def is_palindrome(input: str) -> bool:
input = input.strip().replace(" ", "").lower()
library(broom)
library(dplyr)
library(marginaleffects)
# Data grabbed from https://www.andrewheiss.com/blog/2022/05/20/marginalia/data_2022.Rdata
load("data_2022.Rdata")
glimpse(corruption)
## Simple model
@dmolitor
dmolitor / tt-pell.R
Last active August 31, 2022 02:53
Tidy Tuesday (Pell Grants)
library(animation)
library(dplyr)
library(ggplot2)
library(lubridate)
library(quantmod)
library(scales)
library(tibble)
library(usmap)
library(viridis)
@dmolitor
dmolitor / python-packages.txt
Last active May 4, 2022 21:36
List of important Python packages.
altair
asyncssh
awswrangler
boto3
botocore
dask[complete]
dvc
gensim
linearmodels
matplotlib
@dmolitor
dmolitor / approximate-memory.R
Created April 25, 2022 16:53
Approximate size (typically overestimate) of `data.frame`s memory footprint.
approximate_memory <- function(nrows, ncols) {
round(nrows*ncols*8/2^{20}/1024, 2)
}
@dmolitor
dmolitor / get-recursive.R
Created March 21, 2022 17:13
Recursively search environments for an object.
get_recursive <- function(object.name, env = parent.frame()) {
if (identical(emptyenv(), env)) {
stop(paste0("Object '", object.name, "' not found"), call. = FALSE)
}
tryCatch(
get(object.name, env),
error = function(e) recurse_get(object.name, parent.env(env))
)
}
@dmolitor
dmolitor / read-write-data.R
Last active April 22, 2022 16:28
Read/write data from a variety of file types in one fell swoop.
read_data <- function(path, ...) {
file_ext <- unlist(strsplit(path, "\\."))
file_ext <- file_ext[[length(file_ext)]]
switch(
tolower(file_ext),
parquet = arrow::read_parquet(path, ...),
xlsx = readxl::read_excel(path, ...),
csv = readr::read_csv(path, ...),
fst = fst::read_fst(path, ...),
rds = readRDS(path, ...)
@dmolitor
dmolitor / r-packages.txt
Last active June 8, 2022 15:49
List of important R packages.
abind
AER
anytime
arm
arrow
arules
AsioHeaders
askpass
assertthat
backports
@dmolitor
dmolitor / ssh_using_pem.ps1
Created November 17, 2021 18:15
SSH into remote machine in Powershell using .pem file.
# Example username: ubuntu; Example Public IP: 1.23.456.7
ssh -i "C:\path\to\PEM.pem" ubuntu@1.23.456.7
@dmolitor
dmolitor / rmd_skeleton.R
Created November 5, 2021 14:56
Generate an RMarkdown skeleton with pretty defaults.
rmd_skeleton <- function(name = "Untitled",
dir = here::here(),
title = NULL,
author = "Daniel Molitor",
abstract = FALSE) {
path <- paste0(dir, "/", name, ".Rmd")
if (abstract) {
ab <- paste0(
c("abstract: |",
" "),