2012年2月12日 (日) Multiple comparison among 4 groups using Fisher exact test
2012年2月10日 (金) Multiple comparison among 3 groups using Fisher exact test
5グループ,6グループ,... になったらまたプログラムを書くのだろうか?
同じような内容を繰り返す部分は,combn 関数を使うと簡単に書くことができる。
このやりかただと,p.x に名前を付けるためにもう一度 combn を使わなくてはならないが,それはデメリットには勘定されない。
結果を関数内で書くのはあまりお勧めではない。
必要ならば,print メソッドを書いてやるとよい。
p.fisher <- function(tab) {
nc <- ncol(tab)
p.x <- combn(nc, 2, function(x) fisher.test(tab[, x])$p.value)
names(p.x) <- combn(nc, 2, function(x) sprintf("p.fisher.%d%d", x[1], x[2]))
n.pairs <- length(p.x)
hochberg <- cbind(Crude = rev(sort(p.x)), "Hoch-Adj." = rev(sort(p.x)) * seq_along(p.x))
holm <- cbind(Crude = sort(p.x), "Holm-Adj." = sort(p.x) * rev(seq_along(p.x)))
ans <- list(hochberg = hochberg, holm = holm)
class(ans) <- "p.fisher"
return(ans)
}
print.p.fisher <- function(obj, digits = 4) {
print(round(obj$hochberg, 4))
print(round(obj$holm, 4))
}
最新の画像[もっと見る]
- 算額(その2135) 10時間前
- 算額(その2134) 17時間前
- 算額(その2133) 1日前
- 算額(その2132) 3日前
- 算額(その2131) 4日前
- 算額(その2130) 4日前
- 算額(その2129) 5日前
- 算額(その2128) 5日前
- 算額(その2127) 6日前
- 算額(その2126) 6日前
※コメント投稿者のブログIDはブログ作成者のみに通知されます