No.21449 データの抽出と統合  【コロン】 2014/11/23(Sun) 20:54

いつもお世話になっております。

相変わらず基本的な質問で申し訳ございません。
データの抽出と等号について勉強をしているのですが,以下のデータを加工したいと思っております。

group q1 q2 q3 q4 q5 q6
1 3 3 3 2 4 4
1 2 4 2 1 3 2
1 4 2 5 2 2 1
1 3 2 1 3 3 5
1 5 3 1 2 5 5
2 4 4 3 1 4 4
2 1 3 1 2 4 3
2 1 3 4 3 4 2
2 2 1 5 2 5 3
2 3 2 3 1 3 4

欲しいデータは以下のものです。
(1)group = 1 の q1とq2の平均(被験者ごとの平均値が縦に並んだものです:以下同じです)
(2)group = 1 の q3とq4とq5の平均
(3)group = 1 の q6とq7の平均
(4)group = 2 の q1とq2の平均
(5)group = 2 の q3とq4とq5の平均
(6)group = 2 の q6とq7の平均

そして上記データを分散分析ができるように,(1)〜(6)の順番で横に並べたいのです。

できるだけ簡潔な記述をご教授いただけませんでしょうか?

No.21450 Re: データの抽出と統合  【青木繁伸】 2014/11/24(Mon) 10:18

計算法の説明が不明瞭です
(1) は group=1 の被検者一人一人に計算されるのでしょう。じゃあ,group=2 は (4) に従うのでしょうが,結果としてそれは区別する必要もないのでは?
(1)〜(6)の順番で横に並べるというのも実際にどうやるのかわからない。
q7 はうっかりミスでデータ例に書かれなかっただけなのでしょうけど。
簡潔でなくてもよいので,R で書いて見せてください。何をやりたいのかはっきり伝わるでしょうから。

No.21451 Re: データの抽出と統合  【コロン】 2014/11/25(Tue) 15:56

青木先生

質問が不明で,またデータも間違っており,大変失礼いたしました。

データを変えて,ポイントだけに絞り,お尋ねいたします。

group q1 q2
1 3 3
1 4 2
1 3 4
1 2 3
1 4 5
2 5 5
2 3 5
2 1 4
2 1 3
2 2 4

必要なデータは,

(1)group == 1のq1とq2の平均値
(2)group == 2のq1とq2の平均値

です。私が作ったものは以下の通りです。

# q1とq2の平均について
# group==1
d1 <- subset(dat, group == 1, c("q1", "q2"))
res1 <- (d1$q1 + d1$q2)/2
# group == 2
d2 <- subset(dat, group == 2, c("q3", "q4"))
res2 <- (d2$q3 + d2$q4)/2

res1を変数1とres2を変数2として,データフレームとして統合したいのです。

こんな書き方しかないのかな....と悩んでいるところです。

もし簡潔に(?)表現できるのであれば,その書き方を教わりたい次第です。

よろしくお願いいたします。

No.21452 Re: データの抽出と統合  【青木繁伸】 2014/11/25(Tue) 16:22

res <- rowMeans(dat[, 2:3])
data.frame(変数1=res[dat[, 1] == 1], 変数2=res[dat[, 1] == 2])

変数1 変数2
1 3.0 5.0
2 3.0 4.0
3 3.5 2.5
4 2.5 2.0
5 4.5 3.0
または,例数が決まっているならば,
data.frame(変数1=res[1:5], 変数2=res[6:10])


No.21453 Re: データの抽出と統合  【コロン】 2014/11/25(Tue) 18:28

青木先生

いつもつたない質問に回答頂きありがとうございます。

私にとっては目から鱗です。

すっきりいたしました。

ありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る