如何在R中的列中合并具有特定字符串匹配的两个数据框?

初学者

我有两个数据框data1data2其中包含如下信息:

dput(data1)

structure(list(ProfName = c("Hua (Christine) Xin", "Dereck Barr-Pulliam", 
"Lisa M. Blum", "Russell  Williamson", "William D. Stout", "Michael F. Wade", 
"Sheila A.  Johnston", "Julie Huang", "Alan Attaway", "Alan Levitan", 
"Benjamin P. Foster", "Carolyn M.  Callahan"), Title = c(" PhD", 
" PhD", " LLM", " PhD", " PhD", " CPA", " MS", " PhD", " PhD", 
" PhD", " PhD", " PhD"), Profession = c("Assistant Professor", 
"Assistant Professor", "Instructor", "Assistant Professor", "Associate Professor and Director", 
"Instructor", "Instructor", "Associate Professor", "Professor", 
"Professor", "Professor", "Brown-Forman Professor of Accountancy"
)), row.names = c(8L, 18L, 25L, 36L, 49L, 50L, 56L, 69L, 71L, 
82L, 88L, 89L), class = "data.frame")

它看起来像下面:

在此处输入图片说明

dput(data2)

structure(list(ProfName = c("Blandford, K     ", "Okafor, A     ", 
"Johnston, S     ", "Rolen, R     ", "Attaway, A     ", "Xin, H     ", 
"Huang, Y     ", "Stout, W     ", "Williamson, R     ", "Callahan, C     ", 
"Foster, B     ", "Blum, L     ", "Levitan, A     ", "Barr-Pulliam, D     ", 
"Wade, M     ")), row.names = c(NA, -15L), class = "data.frame")

data2 如下所示:

在此处输入图片说明

我想合并两个数据框,但名称看​​起来不同。只有特定字符串在具有 column 的两个数据帧之间匹配ProfName数据应该被合并,如果名称没有任何信息,它应该是空的。如果他们没有在列的任何信息TitleProfession,这两个ProfNameNew列应具有相同的名称。

我尝试使用merge,但它没有提供所需的输出。

merge(data1, data2, by="ProfName", all.x=TRUE, all.y = TRUE)

输出应如下所示:

在此处输入图片说明

杜诺伊斯

这是一个简单的解决方案:

library(stringr)
library(dplyr)
library(tidyr)
library(magrittr)

data1 %<>% mutate(lname = str_extract(ProfName, "[A-Za-z\\-]+$"))
data2 %<>% mutate(lname = str_extract(ProfName, "^[A-Za-z\\-]+"))

df <- merge(data1, data2, all.y = TRUE, by = "lname")

head(df)

#          lname           ProfName.x Title                            Profession           # ProfName.y
# 1      Attaway         Alan Attaway   PhD                             Professor      Attaway, A     
# 2 Barr-Pulliam  Dereck Barr-Pulliam   PhD                   Assistant Professor Barr-Pulliam, D     
# 3    Blandford                 <NA>  <NA>                                  <NA>    Blandford, K     
# 4         Blum         Lisa M. Blum   LLM                            Instructor         Blum, L     
# 5     Callahan Carolyn M.  Callahan   PhD Brown-Forman Professor of Accountancy     Callahan, C     
# 6       Foster   Benjamin P. Foster   PhD                             Professor       Foster, B 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在熊猫中合并两个数据框时如何“模糊”匹配字符串

如何合并/连接两个具有部分字符串匹配的列的数据框?

如何在R中合并具有几个相同ID的两个数据框

如何将两个数据框与 R 中的两个匹配列合并

在R中,从一个字符串变量跨两个数据框匹配数据,当找到匹配时,合并对应的行

在R中合并两个数据框时如何求和匹配列的值

如何合并一列中具有多个元素的两个数据框

我有两个数据集,需要将一个数据集列中的字符串与 R 中的其他数据集列合并

如何有效地匹配两个数据帧中的字符串

将两个数据帧与具有某些字符串模式的列合并

如何在pyspark中创建具有两个数据框列的字典?

如何在数据框中为列查找具有相同值(字符串)的两个连续行并在它们之间添加更多行?

如何在 R 中合并具有不同长度和两个条件的两个数据帧?

在Python中合并具有非唯一值的列中的两个数据框

从两个数据框中获取匹配字符串的索引

删除要在r中合并两个数据集的字符子字符串

如何在熊猫中合并两个数据框?

如何在特定列中添加具有相同字符串值的行而不转换数据框?

合并两个不同列中具有匹配值的数据框-Pandas

如何基于熊猫python中的特定列合并两个数据框?

在熊猫中,如何检查两个字符串是否与现有数据框中任何行中的多列匹配并将其删除

在R中合并具有特定条件的两个数据帧

两个数据集之间在R中的近似字符串匹配

如何在熊猫中合并两个数据列?

java - 如何在两个数组中查找字符串之间的匹配项

在R中按几列(列中有子元素)合并两个数据框

如何在 R 中合并两个数据集?

如何在 Python 数据框中添加具有字典字符串值的列

如何在Java中将具有相同列名的两个数据框合并(合并)