私は200を超えるカテゴリ変数を持つテーブルを持っています。サンプル:カテゴリ変数のRの頻度クロス集計
Cat1 Cat2 Cat3
A B A
B A A
A C A
A B A
データセットに表示されたカテゴリの頻度(回数)を取得したいとします。このような何か:
- B 3 ...
Rに、私は非常に新しい、結果を得るために、forループを使用してみました。私はそうするより良い方法があると確信しています。これで私を助けてもらえますか?一般的に
私は200を超えるカテゴリ変数を持つテーブルを持っています。サンプル:カテゴリ変数のRの頻度クロス集計
Cat1 Cat2 Cat3
A B A
B A A
A C A
A B A
データセットに表示されたカテゴリの頻度(回数)を取得したいとします。このような何か:
Rに、私は非常に新しい、結果を得るために、forループを使用してみました。私はそうするより良い方法があると確信しています。これで私を助けてもらえますか?一般的に
、あなたはそれぞれのタイプの持っているどのように多くのトークンカウントするための最も便利な機能が?tableです:データセット内のすべてのカテゴリ変数のためtable()
を実行するための
d <- read.table(text="Cat1 Cat2 Cat3
A B A
B A A
A C A
A B A", header=T)
table(d$Cat1)
# A B
# 3 1
最も便利な方法は、?summary.data.frameを使用することです:一方
summary(d)
# Cat1 Cat2 Cat3
# A:3 A:1 A:4
# B:1 B:2
# C:1
あなたはすべてのカテゴリ変数の上に崩壊するテーブルを取得したい場合、あなたは?unlistとtable()
使用することができます。
table(unlist(d))
# A B C
# 8 3 1
が起こっているのかを理解するには、実現する事がR
にデータフレームがリストの特別な種類であるということである:各変数はベクトルであり、データフレームは同じ長さのベクトルのリストである(参照: 、here)。 unlist()
関数は、それらを最初から最後まで結合された1つの長いベクトルに変換します。非カテゴリ変数が混在している場合は、table(unlist(d[,c(<variables to use>)]))
のようなものを除外する必要があります。
'' Cat1'の '' A ''は' 'Cat2'の' 'A''と同じですか?つまり、各変数内、またはすべての変数上で '' A ''を数えたいですか? – gung
ありがとうございました。はい、移行してください。 –
はいcat1の "A"は他の変数の "A"と同じです。 –