Skip to content

Instantly share code, notes, and snippets.


Benjamin Daniels bbdaniels

View GitHub Profile
bbdaniels /
Created Apr 29, 2020
ImageMagick png to gif
convert -delay 20 -loop 0 *.png output.gif
bbdaniels /
Last active Mar 23, 2020 — forked from kbjarkefur/
Include link to git commit SHA used to compile pdf in LaTeX

Automatically include link to current git commit/SHA in compiled LaTeX pdf

This code lets you include an automatically updating link in a LaTeX compiled document that points to the last commit in the branch currently checked out in the repository where the .tex file used to compile the documents is saved. This allows you to track exactly which version of your .tex file was used to generate a given PDF.

Using Git you can then go back to the exact code used when compiling any saved or printed version of your document you find, no matter how long ago it was compiled. The commit SHA (the unique commit ID) will automatically update each time there is a new commit

bbdaniels / intervals.ado
Created Mar 16, 2020
Intervals calculator program for Stata
View intervals.ado
* Intervals program
cap prog drop intervals
prog def intervals
syntax anything [if] [in] [pweight], [Binary]
marksample touse
qui keep if `touse'
bbdaniels /
Created Mar 6, 2020
Loadings graph with arbitrary components
// Get arbitrary loadings
// Data
sysuse auto.dta , clear
local variables length mpg price rep78
// Get labels
foreach var of varlist `variables' {
local `var' : var label `var'
bbdaniels /
Last active Feb 11, 2020
Make simple power curves for binary variables
tempname a b c
tw (function 1.4*sqrt((2/x)+(2/x)) , range(300 600) lc(red)) ///
(function 1.4*sqrt((3/x)+(3/(2*x))) , range(300 600) lc(red) lp(dash)) ///
(function sqrt(1/x) , range(300 600) lc(black) ) ///
, yscale(r(0)) ytit(" ") xtit("Number of Providers") ///
title("Within Case") ///
ylab(0 .05 "5p.p." .1 "10p.p." .15 "15p.p." .2 "20p.p.") ///
legend(on c(1) pos(9) ///
order( ///
bbdaniels /
Created Jan 23, 2020
Edgeworth box in Stata
set obs 100
gen y = runiform() * 3
gen x = runiform() * 3
tw ///
(scatter x y) ///
(scatter x y , m(none) yaxis(2) xaxis(2)) ///
bbdaniels /
Created Jan 13, 2020
Create generic regression table using built-in commands.
// Demo code for creating simple regression table
sysuse auto.dta, clear
// Run regressions
reg price weight
su price if e(sample)
estadd scalar mean = r(mean)
est sto reg1
bbdaniels / Simulation: Big effects from small RCTs
Last active Jan 13, 2020
Simulation: Big and small effects from RCTs
View Simulation: Big effects from small RCTs
// Simulation 1: Big effects from small RCTs
cap mat drop results
qui forv iter = 1/1000 {
set obs 10000
gen x = rnormal() > 0
gen e = rnormal() * 4
*Part I*
*** Setup
clear all //clear any open datasets
cls //clear the screen
version 15
set more off
set linesize 255
*** Generating a random varibale
set obs 100000
bbdaniels /
Created Jan 9, 2020
Loop over letters in Stata (such as for putexcel)
forv i = 1/26 {
local theLetter : word `i' of `c(ALPHA)'
di "`theLetter'"
You can’t perform that action at this time.