num.true <- 9000 num.false <- 1000 num <- num.true + num.false non.diff.mean <- 0 diff.mean <- 5 means <- c(rep(non.diff.mean,num.true),rep(diff.mean,num.false)) nsamples <- 5 Condition2 <- matrix(rnorm(nsamples*num,rep(means,nsamples)),num,nsamples) Condition2.t <- apply(Condition2,1,mean)/sqrt(apply(Condition2,1,var)/nsamples) Condition2.pval <- (1-pt(Condition2.t,nsamples)) FalsePositives <- sum(Condition2.pval[1:num.true] < 0.05) FalseNegatives <- sum(Condition2.pval[(num.true+1):num] > 0.05) FalsePositives;FalseNegatives FalsePostivesBonferroni <- sum(Condition2.pval[1:num.true] < 0.05/num) FalseNegativesBonferroni <- sum(Condition2.pval[(num.true+1):num] > 0.05/num) FalsePostivesBonferroni;FalseNegativesBonferroni FDR <- 0.05 cutoff <- max(sort(Condition2.pval)[sort(Condition2.pval) <= (1:num)/num*FDR]) FalsePositivesFDR <- sum(Condition2.pval[1:num.true] < cutoff) FalseNegativesFDR <- sum(Condition2.pval[(num.true+1):num] > cutoff) FalsePositivesFDR;FalseNegativesFDR