【发布时间】:2020-12-15 08:25:15
【问题描述】:
我想合并两个数据框。第一个有较少的行(2354),一个唯一的 ID,和两个重复的 ID(CVE_MUN 和 CVE_ENT),这两个是地理标识符。
# A tibble: 2,354 x 6
CLAVE NOMBRE CVE_ENT `ENTIDAD FEDERATIVA~ CVE_MUN `MUNICIPIO (INEG~
<chr> <chr> <dbl> <chr> <dbl> <chr>
1 03AGN-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES
2 03AGO-~ Agostaderito 1 AGUASCALIENTES 1 AGUASCALIENTES
3 03AGP-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES
4 03AGS-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES
5 03AIS-~ Alfa Nissan 1 AGUASCALIENTES 1 AGUASCALIENTES
6 03ALF-~ Nissan Mexi~ 1 AGUASCALIENTES 1 AGUASCALIENTES
7 03APT-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES
8 03ASS-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES
9 03ASU-~ Asuncion 1 AGUASCALIENTES 1 AGUASCALIENTES
10 03AYU-~ Ayuntamiento 1 AGUASCALIENTES 1 AGUASCALIENTES
所以我在某个区域有 26 个不同的 ID (CLAVE) (CVE_ENT:1, CVE_MUN:1),在另一个区域有 3 个 ID (CVE_ENT:1, CVE_MUN:2),等等
CVE_ENT CVE_MUN Freq
1 1 26
1 2 3
1 3 2
1 5 3
1 6 1
1 7 1
1 9 1
1 10 2
1 11 2
我想映射所有的 ID,所以我试图将它合并到一个非常详细的地理数据框。该数据框有 299615 行,每个“MAPA”行都有一个唯一的经纬度坐标。
MAPA CVE_ENT NOM_ENT NOM_ABR CVE_MUN NOM_MUN CVE_LOC
1 10010001 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 1
2 10010094 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 94
3 10010096 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 96
4 10010100 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 100
5 10010102 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 102
6 10010104 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 104
7 10010106 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 106
8 10010112 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 112
9 10010113 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 113
10 10010120 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 120
11 10010121 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 121
12 10010125 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 125
13 10010126 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 126
14 10010127 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 127
15 10010128 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 128
16 10010135 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 135
17 10010138 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 138
18 10010139 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 139
19 10010141 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 141
20 10010144 1 AGUASCALIENTES AGS. 1 AGUASCALIENTES 144
同样,我有 CVE_ENT 和 CVE_MUN,但这次它们的重复次数比我的第一个数据帧要多得多。
CVE_ENT CVE_MUN Freq
1 1 725
1 2 242
1 3 293
1 4 94
我想要的是将给定 CVE_ENT 和 CVE_MUN 的 df1 与 df2 合并,而不重复 MAPA。也就是说,在给定 CVE_ENT 和 CVE_MUN 的情况下,“CLAVE”会合并到不同的“MAPA”。理想情况下,df1 会将前 26 个 CVE_ENT=1 和 CVE_MUN=1 合并到 df2 的前 26 个 CVE_ENT=1 和 CVE_MUN=1。
到目前为止,我已经尝试了 left_join 并通过“CLAVE”进行过滤,但“MAPA”再次重复,我没有唯一的地理长、纬度。
Coord<-left_join(df1,df2,by=c("CVE_ENT","CVE_MUN"))
DT <- Coord[!duplicated(Coord$CLAVE),]
我理想的最终数据框如下所示:
CLAVE NOMBRE CVE_ENT `ENTIDAD FEDERATIVA~ CVE_MUN `MUNICIPIO (INEG~ MAPA
1 03AGN-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010001
2 03AGO-~ Agostaderito 1 AGUASCALIENTES 1 AGUASCALIENTES 10010094
3 03AGP-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010096
4 03AGS-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010100
5 03AIS-~ Alfa Nissan 1 AGUASCALIENTES 1 AGUASCALIENTES 10010102
6 03ALF-~ Nissan Mexi~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010104
7 03APT-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010106
8 03ASS-~ Aguascalien~ 1 AGUASCALIENTES 1 AGUASCALIENTES 10010112
9 03ASU-~ Asuncion 1 AGUASCALIENTES 1 AGUASCALIENTES 10010113
10 03AYU-~ Ayuntamiento 1 AGUASCALIENTES 1 AGUASCALIENTES 10010120
【问题讨论】:
-
如果您提供可以直接在 R 中加载的数据,例如reproducible example,将会有所帮助。