[英]Left joint dataset with partial string matching [R]
我想問一下,當要聯合的變量具有不同的字符串時,如何使用 2 個數據集執行左聯合操作。
我知道它可以“手動”完成,但我更喜歡更有效的方法
我在HERE 中提供了 2 個數據集。
以下是每個數據集中的一些行。
所有數據
GID_0 NAME_0 GID_1 NAME_1 NL_NAME_1 GID_2 provstate VARNAME_2 NL_NAME_2 TYPE_2 ENGTYPE_2 CC_2
1 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.1_1 Ain <NA> <NA> Département Department 01
2 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.2_1 Allier Basses-Alpes <NA> Département Department 03
3 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.3_1 Ardèche <NA> <NA> Département Department 07
4 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.4_1 Cantal <NA> <NA> Département Department 15
5 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.5_1 Drôme <NA> <NA> Département Department 26
6 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.6_1 Haute-Loire <NA> <NA> Département Department 43
7 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.7_1 Haute-Savoie <NA> <NA> Département Department 74
8 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.8_1 Isère <NA> <NA> Département Department 38
9 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.9_1 Loire <NA> <NA> Département Department 42
10 FRA France FRA.1_1 Auvergne-Rhône-Alpes <NA> FRA.1.10_1 Puy-de-Dôme <NA> <NA> Département Department 63
數據到插入
provstate count
<chr> <int>
1 Alpes-Maritimes 13
2 Alsace 13
3 Aquitaine 119
4 Aude 1
5 Auvergne 1
6 Auvergne-Rhone-Alpes 10
7 Bas-Rhin 5
8 Bouches-du-Rhone 9
9 Bourgogne-Franche-Comte 6
10 Brittany 23
我需要連接名為all_data 的數據幀將包含在data_to_insert數據幀中找到的名為count 的新變量的數據集 - 關節應基於provstate變量。 (在data_to_insert數據框中沒有值的provstatet在新的左連接數據框中應該有值 0)
然而,兩個數據集中的名稱略有不同。
我想問任何建議
據我檢查,在我看來,您想更改一些字母,例如è
、 ô
和é
。 在all_data
中,城市名稱中有這些字母。 但是在data_to_insert
沒有包含這些字母的城市名稱(例如,Côtes-d'Armor 與 Cotes-d'Armor)。 因此,我決定用普通字母替換這些帶重音的字母。 這將在一定程度上幫助您的加入過程。 (或者這對你來說可能就足夠了。)
library(dplyr)
library(stringi)
mutate(all_data, provstate = stri_trans_general(provstate, "latin-ascii")) -> all_data
left_join(all_data, data_to_insert, by = "provstate")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.