No.16882 Rによるテストデータ解析  【R学習者】 2012/05/09(Wed) 18:50

Rを用いて大規模テストデータの解析を行おうと思っている者です。

書籍類,またインターネット等,関係する情報源は当たれるだけ当たったのですが,解決法が見つからなかったので,こちらで質問させてください。

例えば,以下のようなデータセット(カンマ区切り)Aを読み込んだとします。

Item1 Item2 Item3 … Item 15
Subject1 1 0 1
Subject2 0 0 1
Subject3 1 1 0
:
:
Subject5000

こ のデータセットに含まれる項目反応パタン(ここではItemが15あるので,例えば101001001101010など。項目はすべて2値反応なので,原 理的には2の15乗のパタンがありますが,現実的にはかなり偏ったパタンが観測されると思われます。)すべての度数を計測しようとした場合,これをRで求 める方法はあるでしょうか?

table関数が使えば良い気はするのですが,どのようにこの15桁の反応パタンをカテゴリ化し,tableにすれば良いのか,いいアイデアが思い浮かびません。

理解の浅さを露呈するのでお恥ずかしいのですが,このまま

> table(A[,1:15])

などとしてもうまくいきませんでした。

イメージとしては以下のような結果を求めることができないかということです。

反応パタン 101000110001004 001110110110001 110110101010100 …
度数        5 2 3     …

どうかご教示いただければと思います。

No.16883 Re: Rによるテストデータ解析  【R学習者】 2012/05/09(Wed) 18:54

例としてあげた図表がいずれもズレてしまいました。読みづらくで申し訳ありません。もし私が悩んでいる問題について,意味が不明な点がありましたら,ご指摘ください。

No.16884 Re: Rによるテストデータ解析  【青木繁伸】 2012/05/09(Wed) 19:16

以下のように簡単にできますよ。データ集計は2行でできる(1行にまとめることもできるけど)。
# テストデータの作成
set.seed(12345) # いろいろ試すならこの行をコメントに
n <- 2000 # Subject 数
x <- matrix(sample(0:1, n*15, replace=TRUE), n)
x <- as.data.frame(x)
rownames(x) <- paste("Subject", 1:n, sep="")
colnames(x) <- paste("Item", 1:15, sep="")
# データ集計
z <- apply(x, 1, paste, collapse="")
ans <- table(z)
# 全部書き出すと大変なので,度数が3以上のものだけ抽出
ans[ans>=3]
実行結果は
> ans[ans>=3]
z
000101000000100 100000101000110
3 3
のようになります。

No.16887 Re: Rによるテストデータ解析  【R学習者】 2012/05/09(Wed) 19:24

青木先生

早速のご回答,ありがとうございました。

教示いただいたコードの方,じっくり読み,自分でもいろいろ試したいと思います。

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

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