Master cont1 cont2 cont3 cont4 treat11 treat12 treat13 treat14 treat21 treat22 treat23 treat24一つ目 http://aoki2.si.gunma-u.ac.jp/R/tukey.html
179 0.034187121 0.056523724 NA NA NA NA 0.048247532 0.021396057 0.043990666 0.013342904 NA 0.039969027
252 0.00877045 0.1069724 0.019199401 0.119519818 0.034588354 0.180613251 0.05095946 0.033463966 0.102124856 0.159025491 0.081311295 NA
350 0.044382947 NA 0.054842779 0.065355601 0.024198232 0.023705043 0.027186462 0.007107383 0.017283822 0.038461196 0.061791639 0.06699642
data <- read.table("data.txt", header=TRUE, row.names=1)このあとの,コントロール,処理1,処理2のgroup指定がまずできません。
group <- c(rep(1, 4), rep(2, 4), rep(3, 4))でよいのでしょうか??
> tukey (data, group)としても,『引数の中に異なった長さのものがあります』と出てデータがでません。
No.09072 Re: Rで多数の遺伝子のテューキーがしたい 【青木繁伸】 2009/01/30(Fri) 17:42
たとえば,179という遺伝子について,cont, treat1, treat2 で4検体ずつ測定があって,cont, treat1, treat2 について差があるかどうか検定するということですか。
> このあとの,コントロール,処理1,処理2のgroup指定がまずできません。group <- c(rep(1, 4), rep(2, 4), rep(3, 4))でよいのでしょうか??
できないって,どうできないのですか。> (group <- c(rep(1, 4), rep(2, 4), rep(3, 4)))でいいんじゃないですか?
[1] 1 1 1 1 2 2 2 2 3 3 3 3tukey(data, group)はだめでしょう。例題をよく見ないと。分からないで出鱈目に試行錯誤してもだめですよ。data 観察値ベクトルですよ。あなたがそうやったときの data はデータフレームでしょう。
group 群変数ベクトル
あなたがやりたいことは,i行目にある遺伝子について,tukey(data[i,], group) のようにするのでは?
しかし,NA があるので,単に tukey(data[1,], group) のようにしてもだめです。func <- function(i)のような関数を定義して,for でぐるぐる回して呼び出す
{
d <- cbind(as.numeric(as.matrix(data[i,])), group)
d <- na.omit(d) # 欠損値を除く(対応する group 要素も)
tukey(d[,1], d[,2]) # d の1列目がデータ,2列目がグループ
}for (i in 1:3) {1行目のデータは,func の中でまず,以下のようにしたものが d に代入される
print(func(i))
}group次に na.omit で NA のある行が取り除かれ,
[1,] 0.03418712 1
[2,] 0.05652372 1
[3,] NA 1
[4,] NA 1
[5,] NA 2
[6,] NA 2
[7,] 0.04824753 2
[8,] 0.02139606 2
[9,] 0.04399067 3
[10,] 0.01334290 3
[11,] NA 3
[12,] 0.03996903 3groupのようになる。この1列目がデータ,2列目が群を表すので,
[1,] 0.03418712 1
[2,] 0.05652372 1
[3,] 0.04824753 2
[4,] 0.02139606 2
[5,] 0.04399067 3
[6,] 0.01334290 3
[7,] 0.03996903 3
tukey の引数の説明を良く読めば tukey(d[,1], d[,2]) とすれば良いことがわかる。
そして,以下のような結果が表示される。$result1
n Mean Variance
Group1 2 0.04535542 0.0002494619
Group2 2 0.03482179 0.0003605009
Group3 3 0.03243420 0.0002774016
$result2
t p
1:2 0.6172892 0.8190923
1:3 0.8294781 0.7069682
2:3 0.1532717 0.9871737
$phi
[1] 4
$v
[1] 0.0002911915
No.09079 Re: Rで多数の遺伝子のテューキーがしたい 【Tukey】 2009/01/31(Sat) 11:18
青木先生,お返事が遅くなりまして,すみません。
大変詳細に教えていただき,ありがとうございました。
はじめは,データフレームの意味やベクトルの意味からわからなかったのですが,一つ一つ調べながら理解していったら,無事に全ての遺伝子について,Tukeyすることができました。
functionで欠損値を定義して,データのi行目を順次処理するforの使い方など,一人だとできなかったと思います。
急にRを使えるような気がしてきましたので,もっと勉強してみようと思います。
本当にありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る