我有两个包含子区域的人口和经度/纬度的数据集。由于每个子区域都有几个地理条目,因此我希望以将人口显示在每个单独的相应地理行中的方式加入这些数据集。我已经尝试了每个dplyr命令(inner_join,full_join等),但无法使其正常工作。对此的任何帮助将不胜感激!
数据集1(100个观察值)
subregion population
adams 66949
alexander 7051
bond 17137
... ...
数据集2(10000个观察值)
subregion longitude latitude
adams -91.49563 40.21018
adams -90.91121 40.19299
adams -90.91694 39.75754
alexander -89.20380 37.32247
... ... ...
所需数据集
subregion longitude latitude population
adams -91.49563 40.21018 66949
adams -90.91121 40.19299 66949
adams -90.91694 39.75754 66949
alexander -89.20380 37.32247 7051
... ... ...
#library(tidyverse) # uncomment if needed to access tribble()
B <- tribble( # Using tribble to make quick, easy df's from your post
~subregion, ~population ,
"adams", 66949,
"alexander", 7051,
"bond", 17137)
A <- tribble(
~subregion, ~longitude, ~latitude,
"adams", -91.49563, 40.21018,
"adams", -90.91121, 40.19299,
"adams", -90.91694, 39.75754,
"alexander", -89.20380, 37.32247)
merge(A,B,by="subregion")
#> merge(A,B,by="subregion")
# subregion longitude latitude population
#1 adams -91.49563 40.21018 66949
#2 adams -90.91121 40.19299 66949
#3 adams -90.91694 39.75754 66949
#4 alexander -89.20380 37.32247 7051
注意:绑定被丢弃。如果需要键的弹出,但不需要纬度/经度(它将设置为NA),请使用merge(A,B,by =“ subregion”,all.x = TRUE,all.y = TRUE)。
一个人可以将all.x / all.y的各种组合设置为FALSE的情况下,保留第一帧或第二帧的全部内容(或填充NA)。