#question 1 #to get started, do one simulation #note we generate the *differences*, for 100 people mydiff <- rnorm(100, 2, 7) t.test(mydiff)$p.value #now repeat this 1000 times my.sims <- replicate(1000, { mydiff <- rnorm(100, 2, 7) t.test(mydiff)$p.value }) hist(my.sims) abline(v=0.05, lwd=2, col="red") table(my.sims < 0.05) mean(my.sims < 0.05) #so we get about 80% power (pretty good) #question 2 bpdata <- read.table("bpdata.csv", sep=",") one.p <- function(outcome, snp){ model<-lm(outcome~as.numeric(snp)) coef(summary(model))[2,4] } min.p<-function(outcome,snps){ min(sapply(snps, function(snp) one.p(outcome,snp))) } min.p(bpdata$sbp, bpdata[,5:15]) replicate(3, min.p(sample(bpdata$sbp),bpdata[,5:15])) manyp <- replicate(100, min.p(sample(bpdata$sbp),bpdata[,5:15])) } }