set.seed(2)
args <- list()
args$betahatsd <- 1
args$g <- ashr::normalmix(rep(1/7,7),c(-1.5,-1,-0.5,0,0.5,1,1.5),rep(0.5,7))
args$max_pi0 <- 1
args$min_pi0 <- 0
args$nsamp <- 1000
library('ashr')
rnormmix_datamaker = function(args){
#here is the meat of the function that needs to be defined for each dsc to be done
pi0 = runif(1,args$min_pi0,args$max_pi0) #generate the proportion of true nulls randomly
k = ncomp(args$g)
comp = sample(1:k,args$nsamp,mixprop(args$g),replace=TRUE) #randomly draw a component
isnull = (runif(args$nsamp,0,1) < pi0)
beta = ifelse(isnull, 0,rnorm(args$nsamp,comp_mean(args$g)[comp],comp_sd(args$g)[comp]))
sebetahat = args$betahatsd
betahat = beta + rnorm(args$nsamp,0,sebetahat)
meta=list(beta=beta,pi0=pi0)
input=list(betahat=betahat,sebetahat=sebetahat)
#end of meat of function
data = list(meta=meta,input=input)
return(data)
}
data = rnormmix_datamaker(args)
true_beta <- data$meta$beta
true_pi0 <- data$meta$pi0
saveRDS(list(data=data, true_beta=true_beta, true_pi0=true_pi0), 'dsc_result/datamaker.R_5.rds')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.