R初心者あり、単純なデータテーブル、いくつかの米国の世帯(NumHH)の数を持っている(DT)(レジデンス):周波数テーブル
NumHH Residence
6 AK
4 AL
7 AR
6 AZ
1 CA
2 CO
2 CT
1 AK
4 AL
6 AR
3 AZ
1 CA
6 CO
3 CT
5 AL
を使用することにより
Residence
NumHH AK AL AR AZ CA CO CT
1 1 0 0 0 2 0 0
2 0 0 0 0 0 1 1
3 0 0 0 1 0 0 1
4 0 2 0 0 0 0 0
5 0 1 0 0 0 0 0
6 1 0 1 1 0 1 0
7 0 0 1 0 0 0 0
:()、
with(DT, table(NumHH, Residence))
私は私が望むものに近いですテーブルを取得することができます
しかし、私は住居ごとにいくつかの範囲の頻度を提供するテーブルが必要です。周波数は、この方法で計算されています
##Frequency of ranges per State
One <- DT$NumHH <=1 ##Only 1 person/household
Two_Four <- ((DT$NumHH <=4) - (DT$NumHH <=1)) ##2 to 4 people in Household
OverFour <- DT$NumHH >4 ##More than 4 people in HH
理想的には、結果は次のようになります。
Residence
NumHH AK AL AR AZ CA CO CT
One 1 0 0 0 2 0 0
Two_Four 0 2 0 1 0 1 2
OverFour 1 1 2 1 0 1 0
私が試した:
with()
- 私はやることができています1つの範囲を "with()"と一緒に使用すると、with(DT, table (One, Residence))
- これは私に偽の行と真の行を与えます。data.frames
は、各状態(「AK」、「AL」、「AR」など)に名前を付けるように頼みますが、with()
は既に知っています。私も
ddply
を試しましたが、それぞれの計算のリストがあります(4つの列で150個のラベルなし行 - 各状態ごとに50列に表示された3行ではありません)。
ご協力いただきまして誠にありがとうございます。 table
を使用する前に、あなたのグループを確立するため
おかげで、@thelatemail。私はあなたがwith()を使って簡単に保つことができたのが好きですが、これは 'Cut in Default'のエラーを生成します: 'x'は数値でなければなりません。 R Newbieとして、私は 'NumHH'が()で初期の1変数で数値になることは理解できませんが、それを区間に分解するのはなぜではありません。 – Uzay26
@ uzay26あなたのNumHH変数は、私が推測している数値ではありません。 as.numericで最初に変換してください。 – thelatemail