我想在交叉列表中基于R中另一数据帧中的一列来划分值

问题描述 投票:0回答:1

我下面的交叉表显示了每个位置落入五分位数的人数

                            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

我还有另一个数据框,其中包含每个位置的总人数。

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中做到这一点?

r dataframe percentage crosstab
1个回答
0
投票

您可以按'Location'合并两个数据帧,然后按Total划分每一列。

library(dplyr)
df %>%
  left_join(total_df, by = 'Location') %>%
  mutate_at(vars(`Fourth Quintile`:`Third Quintile`), ~./Total)
© www.soinside.com 2019 - 2024. All rights reserved.