我想知道如何处理这个有趣的问题(至少对我来说)。假设我有一个总体,有3个不同的特征变量和一些定量的人口评级。一个例子如下:
df
income expense education gender residence
1 153 2989 NoCollege F Own
2 289 872 College F Rent
3 551 98 NoCollege M Rent
4 286 320 College M Rent
5 259 372 NoCollege M Rent
6 631 221 NoCollege M Own
7 729 105 College M Rent
8 582 450 NoCollege M Own
9 570 253 College F Rent
10 1380 635 NoCollege F Rent
11 409 425 NoCollege M Rent
12 569 232 NoCollege F Own
13 317 856 College M Rent
14 199 283 College F Own
15 624 564 NoCollege M Own
16 1064 504 NoCollege M Own
17 821 169 NoCollege F Rent
18 402 175 College M Own
19 602 285 College M Rent
20 433 264 College M Rent
21 670 985 NoCollege F Own
我可以计算由三个特征变量定义的支出收入比(SIR):教育、性别和居住。因此,在第一级,不进行细分,SIR是:
^{pr2}$然后我把人群分成男性和女性两组,得到:
df %>% group_by(gender) %>% summarise(count=n(), spending_ratio=sum(expense)/sum(income)*100)
>> gender count spending_ratio
1 F 8 138.0
2 M 13 67.3
我们通过引入教育来继续这一过程:
df %>% group_by(gender, education) %>% summarise(count=n(), spending_ratio=sum(expense)/sum(income)*100)
>> gender education count spending_ratio
1 F College 3 133.1
2 F NoCollege 5 139.4
3 M College 6 72.4
4 M NoCollege 7 63.9
最后加上residence
:
df %>% group_by(gender, education, residence) %>% summarise(count=n(), spending_ratio=sum(expense)/sum(income)*100)
>> gender education residence count spending_ratio
1 F College Own 1 142.2
2 F College Rent 2 131.0
3 F NoCollege Own 3 302.2
4 F NoCollege Rent 2 36.5
5 M College Own 1 43.5
6 M College Rent 5 77.3
7 M NoCollege Own 4 59.9
8 M NoCollege Rent 3 73.4
我想实现的是生成一个包含所有上述信息的treemap-like plot。但正如你所看到的,树状图离我想要的还很远。我想得到的是一个类似于顶部图像的地图,每个矩形的大小代表计数,颜色代表SIR,树的所有级别都包括在内。在
任何帮助我们都深表感激。在
您可以使用
treemap
包在不同的级别进行聚合,但是输出需要格式化很多。当treemap
进行连续聚合时,它将删除数据表. 因此,由于聚合函数需要额外的变量,所以我创建了一些虚拟变量。变量“index”用于索引每个子集的“expense”和“income”。这是你可以做的编辑
先生,我觉得渐变色效果更好。为此,您只需将
^{pr2}$fill=color
替换为fill=vColor
,并通过某种渐变来缩放填充。在相关问题 更多 >
编程相关推荐