【发布时间】:2017-04-18 22:16:03
【问题描述】:
我有一个如下示例数据集
Town_From<-c("A","A","A","B","B","C")
Town_To<-c("B","C","D","C","D","D")
Distance<-c(10,5,18,17,20,21)
Df<-data.frame(Town_From,Town_To,Distance)
Town_From Town_To Distance
A B 10
A C 5
A D 18
B C 17
B D 20
C D 21
我有另一个数据框 (Df2),其中包含人口值
Town<-c("A","B","C","D")
Population<-c(1000,800,500,200)
Df2<-data.frame(Town,Population)
Town Population
A 1000
B 800
C 500
D 200
我需要的是一个作为“Pop_within_Distance”的计算列
Town_From Town_To Distance Pop_within_Distance
A B 10 2300
A C 5 1500
A D 18 2500
B C 17 1300
B D 20 1500
C D 21 700
Town_From 是我的 Origin,我需要将“Town_From”和“Town_To”半径内的城镇人口总和计算为“Pop_within_Distance”
例如,
在第一行,“Pop_within_Distance” = Pop_A + Pop_B + Pop_C =1000+800+500=2300(这是因为城镇 A、B 和 C 位于距离城镇 A 为 10 的圆内)
在第 4 行,“Pop_within_Distance” = Pop_B + Pop_C = 800+500=1300 (这是因为,只有 B 镇和 C 镇位于 B 镇半径为 17 的圆内)
如何在 R 中计算?
【问题讨论】:
-
这不是真正的编码问题;这是一道数学题。
-
@ulfelder 这是正确的家庭作业。 OP:如果是这样(即使不是)你尝试过什么失败了?