Найти соответствие двух фреймов данных и переписать ответ как фрейм данных

у меня есть два фрейма данных, которые очищены и объединены в один CSV-файл, фреймы данных, как это

  **Source                         Master**

 chang chun petrochemical      CHANG CHUN GROUP
 chang chun plastics           CHURCH AND DWIGHT CO INC
 church  dwight                CITRIX SYSTEMS ASIA PACIFIC P L
 citrix systems  pacific       CNH INDUSTRIAL N.V

теперь из них я должен рассмотреть имя и проверить каждое имя основных имен, найти соответствующее соответствие и распечатать вывод в виде другого фрейма данных. вышеупомянутых фреймов данных немного, но я работаю со значениями 20k как таковыми.

Мой вывод должен выглядеть так

 **Source                         Master                         Result**

 chang chun petrochemical      CHANG CHUN GROUP                 CHANG CHUN GROUP
 chang chun plastics           CHURCH AND DWIGHT CO INC         CHANG CHUN GROUP
 church  dwight                CITRIX SYSTEMS ASIA PACIFIC P L  CHURCH AND DWIGHT CO INC
 citrix systems  pacific       CNH INDUSTRIAL N.V               CITRIX SYSTEMS ASIA PACIFIC P L

Я пробовал это с возможными способами с этой ссылкойСлияние посредством нечеткого сопоставления переменных в R но пока не повезло!

Заранее спасибо!!

когда я использую приведенный выше код для большого набора данных, результат

используемый код:

Mast <- pmatch(Names$I_sender_O_Receiver_Customer, Master.Names$MOD, nomatch=NA)

ВЫХОД

NA NA  2  3 NA NA NA  6 NA NA  9 NA NA NA 12 NA NA NA 13 14 15 16 NA 18 19 20 21 22 NA 24 NA 26 NA 28 NA NA NA 30 NA NA 33 NA 35 36 37 NA 39 40 NA NA 43 NA 45 46 NA 48 49 50 51 52 53 54 55 56 57 58 NA
 [68] 60 61 62 NA NA NA NA 64 NA 66 67 68 69 70 71 72 73 NA 75 76 77 78 NA 79 80 81 NA 83 84 85 86 87 88

КОД:

Mast <- sapply(Names$I_sender_O_Receiver_Customer, function(x) {
   agrep(x, Master.Names$MOD,value=TRUE) })

ВЫХОД:

[[1]]
character(0)

[[2]]
character(0)

[[3]]
[1] " CHURCH AND DWIGHT CO INC"

[[4]]
[1] " CITRIX SYSTEMS ASIA PACIFIC P L"

[[5]]
character(0)

и даже с циклом for результат не получается.

код:

for(i in seq_len(nrow(df$ICIS_Cust_Names)))
  {
    df$reslt[i] <- grep(x = str_split(df$ICIS_Cust_Names[i]," ")[[1]][1], df$Master_Names[i],value=TRUE)
  }
  print(df$reslt)

Код 2: Используется для цикла только для 100 строк

for (i in 100){
  gr1$x[i] = agrep(gr1$ICIS_Cust_Names[i], gr2$Master_Names, value = TRUE, max = list(del = 0.2, ins = 0.3, sub = 0.4))
  gr2$Y[i] = agrep(gr1$ICIS_Cust_Names[i], gr2$Master_Names, value = FALSE, max = list(del = 0.2, ins = 0.3, sub = 0.4))
}

Результат:

NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

ошибка

Error in `
Error in `$<-.data.frame`(`*tmp*`, "x", value = c(NA, NA, " church  dwight  " : 
  replacement has 3 rows, data has 100
lt;-.data.frame`(`*tmp*`, "x", value = c(NA, NA, " church dwight " : replacement has 3 rows, data has 100

при наблюдении рассматривается результат выше, так как он проверяет непосредственно значение строки каждого фрейма данных, но я хочу, чтобы он рассмотрел первый элемент Source и проверил со всеми элементами master и нашел совпадение, аналогично для остальных , Буду признателен, если кто-нибудь сможет исправить мой код! заранее спасибо..!

Ответы на вопрос(1)

Ваш ответ на вопрос