【发布时间】:2017-03-01 01:05:56
【问题描述】:
R Newbie 有一个简单的数据表 (DT),其中包含几个美国 (Residences) 的家庭数量 (NumHH):
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
通过使用 with(),
with(DT, table(NumHH, Residence))
我可以得到一张接近我想要的桌子:
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
但我需要一个表格来提供每个住宅的多个范围的频率。频率是这样计算的:
##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()- 我一次只能用“with()”做一个范围,例如:with(DT, table (One, Residence))- 这给了我一个 FALSE 行和一个 TRUE 行。data.frames要求我为每个州命名(“AK”、“AL”、“AR”等),但with()已经知道了。我也尝试过
ddply,但得到了每个计算的列表(4 列中的 150 个未标记行 - 不是每个状态所需的 50 列中的 3 个标记行),所以我显然没有做对的。
非常感谢任何帮助。
【问题讨论】:
标签: r