Skip to content

Instantly share code, notes, and snippets.

import polars as pl
import pandas as pd
# Read input data as a data frame with two columns
input = pl.from_pandas(
pd.read_table("day-1/input", sep = " ", header = None,
names = ["list_1", "list_2"])
)
# Sort each column separately,
read.table("day-1/input", col.names = c("list_1", "list_2")) |>
apply(MARGIN = 2, sort) |>
apply(MARGIN = 1, FUN = \(x) abs(x[2] - x[1])) |>
sum()
@bschneidr
bschneidr / gist:dbc2eb6a1e64d6408ef3281bb2c589d1
Last active September 30, 2024 04:08
Install cmdstanr with WSL and OpenBLAS
sudo apt-get install libopenblas-dev
sudo apt-get install liblapacke-dev
sudo apt-get install liblapacke
sudo apt-get install libopenblas-serial-dev
sudo apt-get install libopenblas0-serial
sudo apt-get install libopenblas0
@bschneidr
bschneidr / sample-groups-with-dplyr-and-tidyr.R
Created May 23, 2024 17:59
Sampling groups with 'dplyr' + 'tidyr'
library(dplyr)
library(tidyr)
library(survey)
# Load example data
# 'apipop' has one row per school
data('api', package = 'survey')
# Draw a sample of school districts
library(dplyr)
library(broom)
library(tidyr)
# Make example data
my_data <- data.frame(x = sample(1:5, size = 10, replace = TRUE),
y = sample(1:5, size = 10, replace = TRUE))
# Generate every pair of variables
var_list <- colnames(my_data)
@bschneidr
bschneidr / alt-design-syntax.R
Created December 11, 2022 14:51
Alternative survey design syntax
describe_design(
srs_stage(id = "PSU_ID", method = "SRS",
stratum = "PSU_STRATUM_ID"),
nonresponse_stage(response_indicator = "PSU_RESPONDENT"),
pps_stage(id = "SSU_ID", method = "PPS",
stratum = "SSU_STRATUM_ID"),
nonresponse_stage(response_indicator = "SSU_RESPONDENT")
)
@bschneidr
bschneidr / sample-variance-as-quadratic-form.R
Last active October 28, 2022 12:33
Expresses sample variance as a quadratic form
n = 5
# Establish quadratic form
quad_form_matrix <- matrix(nrow = n, ncol = n)
for (i in seq(n)) {
for (j in seq(n)) {
if (i == j) {
quad_form_matrix[i,j] <- (1/n)
} else {
@bschneidr
bschneidr / svy_prop_with_wilson_ci.R
Last active November 11, 2023 10:19
Wilson Confidence Interval for Complex Surveys
#' @title Wilson's confidence interval for complex survey designs
#' @description Calculate Wilson's confidence interval for a proportion,
#' with the effective sample size determined using a design-unbiased
#' estimate of the complex survey design effect.
#'
#' @param x A formula, vector, or matrix.
#' @param design A survey.design or svyrep.design object
#' @param na.rm Should cases with missing values be dropped?
#' @param level The confidence level required
#' @param ... Additional arguments to pass on to \code{svymean()}
@bschneidr
bschneidr / wilson-interval-for-complex-surveys.R
Last active October 12, 2022 14:30
Wilson's confidence interval for complex surveys
#' @title Wilson's confidence interval for complex survey designs
#' @description Calculate Wilson's confidence interval for a proportion,
#' with the effective sample size determined using a design-unbiased
#' estimate of the complex survey design effect.
#'
#' @param x A formula, vector, or matrix.
#' @param design A survey.design or svyrep.design object
#' @param na.rm Should cases with missing values be dropped?
#' @param level The confidence level required
#'
@bschneidr
bschneidr / finite-population-bayesian-bootstrap.R
Created September 22, 2022 14:25
Example of FPBB with the Louisville Vaccination Survey
suppressPackageStartupMessages({
library(survey)
library(svrep)
library(polyapost)
})
set.seed(1999)
# Load example survey data ----
data("lou_vax_survey", package = 'svrep')