首页 > 解决方案 > 如何将一个数据框的列除以另一个数据框的列

问题描述

我有一个数据框,其中包含巴西某些城市的医生人数(数据框 A)。我有另一个包含城市人口(全部)的数据框(数据框 B)。如何获得医生人数除以城市人口的值。请注意,我在 B 的城市比在 A 的城市多。

> A
 City Doctors 
 A          3
 C          4
 E          5
> B
 City     Pop 
 A          100
 B          20
 C          30
 D          40
 E          500
 F          10

我期待以下内容:

> Doc_divided_by_Pop
 City  Doctors_Pop
 A               3/100
 C               4/30
 E               5/500

标签: r

解决方案


这是一种使用match基础 R 的方法 -

A$Doctors_Pop <- A$Doctors / B$Pop[match(A$City, B$City)]

另一种使用方式merge-

result <- merge(A, B, by = "City", all.x = TRUE)

result$Doctors_Pop <- result$Doctors / result$Pop

推荐阅读