Skip to content

Instantly share code, notes, and snippets.

Ben Marwick benmarwick

Block or report user

Report or block benmarwick

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@benmarwick
benmarwick / .github-workflows-main.yml
Last active Feb 14, 2020
GitHub workflow to render all Rmd files in a GitHub repo, e.g. for testing student assignments
View .github-workflows-main.yml
# from https://github.com/cboettig/compendium/blob/master/.github/workflows/main.yml
on: [push]
name: render all R Markdown documents
jobs:
render:
name: render all R Markdown documents
runs-on: macOS-latest
steps:
@benmarwick
benmarwick / rich-diffs-rmd-in-local-git-repo.R
Last active Jan 27, 2020
GitHub doesn't show rich diffs for Rmd files. That can make collaborative writing tough. Here's how to see rich diffs of two commits of a single R Markdown document on a GitHub repo or local Git repo
View rich-diffs-rmd-in-local-git-repo.R
# How to see rich diffs of two commits of a single R Markdown document in a local Git repo
# https://github.com/lorenzwalthert/gitsum
library("gitsum")
library("tidyverse")
# To browse the commits locally, open an RStudio
# project that is using Git version control, then ...
# Set the path within the project to the Rmd file
@benmarwick
benmarwick / Tehrani_Collard_2002.R
Created Dec 30, 2019
Replicating Tehrani & Collard 2002
View Tehrani_Collard_2002.R
# paste from http://www.ceacb.ucl.ac.uk/ceacb_files/misc/Tehrani_Collard_2002.pdf
# edit to get each textile design on one line
raw_input <-
c("Ersari 1 0 1 0 1 1 0 1 0 1 1 0 1 1 100000011010000001011001111101011000011111100110111011011011011011110000000 0
Saryk 1 0 1 0 1 1 1 1 1 1 1 0 1 0 100000011010111101010100001111100000010101010110011011100000001011100000000 0
Salor 1 0 1 1 0 1 0 1 0 1 0 1 0 0 011110110101000001011000001011110111010101000100111101111101001101100000101 0
PSDP Tekke 1 1 0 0 0 1 0 1 1 0 1 0 0 0 011000011111111111011010001010100000010101101101000000000000000000001101000 0
SDP Tekke 1 1 0 0 0 1 0 1 1 0 0 1 0 0 000011111001110011111010000000000010100001100000000000001100101010001011111 1
Yomut 0 0 0 0 0 1 0 1 1 0 0 0 1 1 000000000000101100000001100000011000010100000000000000000000000000000000000 0")
@benmarwick
benmarwick / gist:cffb82fb6d9192354d495a2e0ded4e55
Last active Sep 13, 2019
Plot the population of Han Chinese in Taiwan from Wikipedia
View gist:cffb82fb6d9192354d495a2e0ded4e55
library(tidyverse)
pop_han_in_tw <- tribble(
~year, ~population,
1684, 120000,
1764, 666210,
1782, 912920,
1811, 1944737,
@benmarwick
benmarwick / inspect-rmd-diff-from-last-commit.R
Last active Aug 12, 2019
How to compare the current commit of an RMarkdown file with the most recent commit. Useful when we merge a pull request and want to check again how it has changed the document
View inspect-rmd-diff-from-last-commit.R
# reviewer pkg comes from https://ropenscilabs.github.io/reviewer/index.html
browseURL(reviewer::diff_rmd("path/to/my-document.Rmd",
# this gets the sha of the previous commit
git2r::commits(n=2)[[2]]$sha)$raw)
# result will open in a web browser
@benmarwick
benmarwick / gist:82776e452d61cfbd44972ae6a4c23c21
Last active Jul 28, 2019
Stacked, overlapping time series plots on a common y-axis with ggplot2
View gist:82776e452d61cfbd44972ae6a4c23c21
# starting with code from
# https://gist.github.com/tomhopper/faa24797bb44addeba79?fbclid=IwAR3FFiHpUhTESqi_ylASZP5-zYD0lOrQyyHM2MSEvnVRCIykmjNREGTv4Uk
library(ggplot2)
library(grid)
library(dplyr)
#' Create some data to plot
n <- 100
df <- data.frame(DateTime = seq(10, 20, length.out = 100),
View 001-get-pkg-data-from-cran-github-mirror.R
library(tidyverse)
library(gh)
.token = "" # get one from https://github.com/settings/tokens
# get all pkgs on GitHub mirror of CRAN
n <- 5000 # 16125 # https://github.com/cran
cran_repos <- gh("/users/:username/repos",
username = "cran",
@benmarwick
benmarwick / prentiss-1998-pca.R
Last active Aug 13, 2019
Exploring the PCA published by Prentiss (1998) to understand the usefulness of the Sullivan and Rozen debitage typology
View prentiss-1998-pca.R
#------------------------------------------------------
# Exploring the PCA published by Prentiss (1998) to understand the
# usefulness of the Sullivan and Rozen debitage typology
# read in & tidy the data -----------------------------------------------
library(tidyverse)
# got these data from table 7 (p. 644) of https://www.jstor.org/stable/2694112
# OCR'd using https://tabula.technology/
prentiss <- readr::read_csv("tabula-Prentiss 1988.csv")
@benmarwick
benmarwick / app.R
Last active May 1, 2019
Shiny app to get outlines of an object in an image using Canny edge detection
View app.R
library("shiny")
library("EBImage") # >= 4.19.3
library(imager)
ui <- fluidPage(# Application title
titlePanel("Image outline, chords, and landmarks"),
@benmarwick
benmarwick / gist:8cf22ecb74ac511f8ac1c70aef6038a7
Last active Mar 22, 2019
How to make diamond plots after Bergstrom and West (2018) "Why scatter plots suggest causality, and what we can do about it"
View gist:8cf22ecb74ac511f8ac1c70aef6038a7
# https://arxiv.org/pdf/1809.09328.pdf & https://twitter.com/CT_Bergstrom/status/1035327464644333568
# they use Mathematica, boo! So let's make them with R
# starting with https://stackoverflow.com/q/33396168/1036500
library(ggplot2)
p <- ggplot() +
geom_point(data = anscombe,
You can’t perform that action at this time.