R 将两个具有不同观测数的数据集连接起来
我有两个包含人口和次区域经度/纬度的数据集。由于每个分区都有几个地理条目,因此我希望以一种方式连接这些数据集,即在每个对应的地理行中显示人口。我已经尝试了所有dplyr命令(内部连接、完全连接等),但无法使其工作。非常感谢您在这方面的任何帮助 数据集1(100次观察) 数据集2(10000次观测) 所需数据集R 将两个具有不同观测数的数据集连接起来,r,dplyr,inner-join,R,Dplyr,Inner Join,我有两个包含人口和次区域经度/纬度的数据集。由于每个分区都有几个地理条目,因此我希望以一种方式连接这些数据集,即在每个对应的地理行中显示人口。我已经尝试了所有dplyr命令(内部连接、完全连接等),但无法使其工作。非常感谢您在这方面的任何帮助 数据集1(100次观察) 数据集2(10000次观测) 所需数据集 subregion longitude latitude population adams -91.49563 40.21018 66949 adams
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
... ... ...
如果需要bond的pop,但lat/long不是(VAL将设置为NA)
通过将all.x/all.y的各种组合设置为TRUE或FALSE,可以从第一帧或第二帧或两者(使用NAs填充)保留all 因此,df1的
bond
不应该出现在最终结果中,因为它不在df2中?您是否尝试了dplyr::left_join(Dataset2,Dataset1,by='subsection')
?left_join(dateset1,dateset2,by='subsection')
应该可以正常工作,left_join命令在合并我的数据集时不起作用。但是由于它被推荐了两次,我想我当前的数据集还有另一个问题。@MalteS。在这种情况下,您需要检查两个数据集中的subsection
列是否相同,即:大写字母,空格
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(tibble) # 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
merge(A,B,by="subregion",all.x=TRUE,all.y=TRUE)