suppressPackageStartupMessages({library(metafor);library(jsonlite)})
d<-read.csv('/job/evidence/event-audit.csv')
f<-function(x){m<-rma.mh(ai=ai,n1i=n1i,ci=ci,n2i=n2i,data=x,measure='OR');list(k=m$k,logor=unname(coef(m)[1]),se=m$se,OR=exp(coef(m)[1]),lower=exp(m$ci.lb),upper=exp(m$ci.ub))}
compare<-function(x){a<-f(subset(x,group=='masked'));b<-f(subset(x,group=='awake'));list(masked=a,awake=b,p=2*pnorm(-abs((b$logor-a$logor)/sqrt(a$se^2+b$se^2))))}
baseline<-compare(d)
stopifnot(baseline$masked$k==22,baseline$awake$k==43,abs(baseline$p-0.0051)<0.0001)
complete<-subset(d,incomplete=='False')
es<-escalc(measure='OR',ai=ai,n1i=n1i,ci=ci,n2i=n2i,data=complete,add=0.5,to='only0')
es<-subset(es,group %in% c('masked','awake'))
m<-rma(yi,vi,mods=~I(group=='awake'),data=es,method='REML',test='knha')
cat(toJSON(list(baseline=baseline,exclude_missing=compare(complete),random_effects_moderator=list(k=m$k,log_ratio=unname(coef(m)[2]),lower=m$ci.lb[2],upper=m$ci.ub[2],p=m$pval[2])),auto_unbox=TRUE,pretty=TRUE,digits=8),'\n')
