簡體   English   中英

具有部分字符串匹配的左關節數據集 [R]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM