繁体   English   中英

我想根据 R 中的另一个 dataframe 中的一列来划分交叉表中的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM