[英]I want to divide values in a cross tabulation based on one column by column in another dataframe in R
我有下面的交叉表显示每个位置的每个五分之一的人数
Quintile
Location Fourth Quintile Highest Quintile Lowest Quintile Second Quintile Third Quintile
ACT 47926 56799 31146 28143 30494
GA 117952 90323 106448 115168 125475
GB 216805 204766 190530 195830 212645
GD 17777 17707 10565 11362 13650
GH 19393 14322 19122 19831 21443
GM 403012 363902 385852 384362 396915
GP 186868 256448 174139 165962 161256
GS 432012 468749 399487 400870 411057
NSW 192504 180875 218228 232050 217500
NT 5759 5358 5151 4876 5279
Qld 191812 192972 210659 222899 210492
SA 25105 18248 32495 32662 30916
Tas. 21130 14452 26584 27405 26695
Vic. 111428 74023 131593 132609 126082
WA 37837 60160 45700 43054 37517
我还有另一个 dataframe 包含每个位置的总人数。
Location Total
GS 2112175
NSW 1041157
GM 1934043
Vic 575735
GB 1020576
Qld 1028834
GA 555366
SA 139426
Perth 944673
WA 224268
GH 94111
Tas. 116266
GD 71061
NT 26423
ACT 194508
我想将交叉表除以相应位置的总数,以便交叉表反映每个位置每个五分之一的人的比例/百分比。 因此,例如,我最终会得到第四个五分位位置 ACT 为 47926/194508 = 0.24... 并为每个位置执行此操作。 如何在 R 中执行此操作?
您可以通过'Location'
加入两个数据框,然后将每列除以Total
。
library(dplyr)
df %>%
left_join(total_df, by = 'Location') %>%
mutate_at(vars(`Fourth Quintile`:`Third Quintile`), ~./Total)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.