Skip to content

Instantly share code, notes, and snippets.

CreateClusteredData <- function(num.groups, sample.size, beta, randomize.by.group = FALSE){
individual <- 1:sample.size # index for individuals
group <- sample(1:num.groups, size = sample.size, replace = TRUE) # randomly assign everyone to a group
group.effect <- rnorm(num.groups) # create a group-specific effect
eta <- group.effect[group] # give each individual their group-specific effect
epsilon <- rnorm(sample.size) # given each individual an individual-specific effect
if (randomize.by.group){
group.trt.assignment <- rbinom(num.groups, 1, 0.5)
trt <- group.trt.assignment[group]
} else {
ts := $(shell /bin/date "+%Y-%m-%d---%H-%M-%S")
project.pdf: project.bib project.tex
pdflatex -interaction=nonstopmode project
bibtex project
pdflatex -interaction=nonstopmode project
pdflatex -interaction=nonstopmode project
backup:
tar --exclude='../backups' -zcvf ../backups/project_$(ts).tar.gz ../
@johnjosephhorton
johnjosephhorton / strat.R
Created February 8, 2015 12:44
showing_stratification_advantage
library(ggplot2)
# simulate experiments using stratification and randomization and report
# absolute difference in estimates from true treatment effect, tau.
simExp <- function(n, tau, beta = 3){
x <- sort(runif(n))
W.rand <- rbinom(n,1,0.5)
W.strat <- rep(c(0,1), n/2)
epsilon <- rnorm(n, 0, 0.5)
<html lang="en">
<title>Obot</title>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
@johnjosephhorton
johnjosephhorton / data.csv
Created January 4, 2014 14:38
Data file for blog post - results from MTurk survey of knowledge about application counts
We can make this file beautiful and searchable if this error is corrected: Illegal quoting in line 5.
response knew_count learned_formal learned_social learned_inferred
Yes, because it was through school and I knew the particular amount of interview spots that were open. 1 0 0 1
Yes the last time I applied for a job they were considering two people. My friend that work there told me. 1 0 1 0
The last time I tried to apply for a job, I did not know how many people the firm was considering since it was a blind interview. 0 0 0 0
No, I had no idea. The only indication was I was not told anything other than they had "several" other people to interview. "Several" could mean anything, although I doubt they would interview more than 10-15. 0 0 0 0
I had no idea how many candidates were being considered for the position. I was only aware that the position was available. 0 0 0 0
no, I had no idea. 0 0 0 0
Yes, I knew how many because associate conducting the interview mentioned that there were two other applicants coming in for interviews in the coming days so the final decision would not come for a few day afterwar
#!/usr/bin/Rscript
# Can title predicto log wages?
# Author: John Horton <http://john-joseph-horton.com>
library(JJHmisc) # available on Github
library(oDeskTools) #oDesk-specific package
library(ggplot2)
library(scales)
library(RTextTools)
@johnjosephhorton
johnjosephhorton / backup.py
Last active December 19, 2015 15:49
Python backup script to S3
#!/usr/bin/python
# John Horton
import argparse
import sys
import os
parser = argparse.ArgumentParser(description='Make tarball and upload to s3')
parser.add_argument('-d','--dir', help='Input directory',required=True)
@johnjosephhorton
johnjosephhorton / tableContinuous.R
Last active December 17, 2015 23:19
This is tableContinuous from reporttools - I'd like it to include the ability to pass a caption placement parameter to the function.
tableContinuous <- function (vars, weights = NA, subset = NA, group = NA, stats = c("n",
"min", "q1", "median", "mean", "q3", "max", "s", "iqr", "na"),
prec = 1, col.tit = NA, col.tit.font = c("bf", "", "sf",
"it", "rm"), print.pval = c("none", "anova", "kruskal"),
pval.bound = 10^-4, declare.zero = 10^-10, cap = "", lab = "",
font.size = "footnotesize", longtable = TRUE, disp.cols = NA,
nams = NA, caption.placement = "bottom")
{
print.pval <- match.arg(print.pval)
if (identical(disp.cols, NA) == FALSE) {
@johnjosephhorton
johnjosephhorton / get_country_specific_minimum_wages_from_wikipedia.R
Created May 21, 2013 17:08
Get country-specific wages from Wikipedia and plot them with ggplot2
############################################################################
# AUTHOR: John Horton
# PURPOSE: Extract by-country minimum hourly wages from the Wikipedia page
# LAST MODIFIED: May 22, 2013
############################################################################
library(XML)
library(ggplot2)
library(scales)