Guest User

Untitled

a guest
Dec 18th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. ## Generate some p values and compare the three possibilities of
  2. ## adjusting for multiple testing
  3. n <- 10000
  4. x <- pmin(rexp(n,rate =1/0.01), 1) # Generate some p values
  5. x[sample(c(F,T), n/10, TRUE)] <- NA # delete some observations
  6. # Three different methods of p value calculation
  7. x1 <- p.adjust(x, method = 'holm')
  8. x2 <- p.adjust(x, method = 'holm', n = length(x))
  9. x3 <- multtest::mt.rawp2adjp(x, proc = 'Holm')
  10. x3 <- x3$adjp[order(x3$index),"Holm"]
  11. # Compare p.adjust and mt.rawp2adjp
  12. par(mfrow=c(1,2))
  13. plot(x1, x3); title('p.adj(x) n vs. mt.rawp2adjp')
  14. plot(x2, x3); title('p.adj(x, len = length(x)) n vs. mt.rawp2adjp')
  15.  
  16. function (p, method = p.adjust.methods, n = length(p))
  17. {
  18. method <- match.arg(method)
  19. if (method == "fdr")
  20. method <- "BH"
  21. nm <- names(p)
  22. p <- as.numeric(p)
  23. p0 <- setNames(p, nm)
  24. if (all(nna <- !is.na(p)))
  25. nna <- TRUE
  26.  
  27. p <- p[nna]
  28. lp <- length(p)
  29.  
  30. stopifnot(n >= lp)
  31. [ remaining source code omitted ]
  32. }
Add Comment
Please, Sign In to add comment