Skip to content

Instantly share code, notes, and snippets.

Avatar

Benjamin Daniels bbdaniels

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

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
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
preserve
qui keep if `touse'
@bbdaniels
bbdaniels / scatter-loadings.do
Created Mar 6, 2020
Loadings graph with arbitrary components
View scatter-loadings.do
// 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
bbdaniels / power-curve.do
Last active Feb 11, 2020
Make simple power curves for binary variables
View power-curve.do
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
bbdaniels / Edgeworth-box.do
Created Jan 23, 2020
Edgeworth box in Stata
View Edgeworth-box.do
clear
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
bbdaniels / regression-table.do
Created Jan 13, 2020
Create generic regression table using built-in commands.
View regression-table.do
// 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
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 {
clear
set obs 10000
gen x = rnormal() > 0
gen e = rnormal() * 4
View One.do
*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
bbdaniels / loop-over-letters.do
Created Jan 9, 2020
Loop over letters in Stata (such as for putexcel)
View loop-over-letters.do
forv i = 1/26 {
local theLetter : word `i' of `c(ALPHA)'
di "`theLetter'"
}
You can’t perform that action at this time.