使用两个表中的Names连接R中的两个表

时间:2017-12-06 10:58:07

标签: r sqldf fuzzyjoin

大家好我知道在R中加入表格的问题很少,我尝试了大部分但是他们没有工作,在我的情况下,我有两个表第一个(A)有两列({ {1}}和Id),70,000行,第二个(B)有company_namecompany_name .....等10,000,000行。

我想加入他们以获取A中所有公司的registration number

提示,我尝试在excel中使用registration numberinner joinsqldf合并fuzzyjoin,但它没有返回A中的所有记录。

2 个答案:

答案 0 :(得分:2)

很难在没有任何示例代码或数据的情况下给出答案,但让我试试。

我可以在这里看到三个可能的问题。

1:您想在结果集中包含A中的所有条目吗?即使B没有比赛?那么你应该使用左外连接。 例如,使用合并时,您应该merge(A,B,by="company_name",all.x = TRUE)

2:我可以看到你想加入company_name,是A和B中的班级角色吗?有时,当您在文件中读取时,它会因某种原因被转换为因子。将它们转换为A$company_name = as.character(A$company_name)的字符,并对B

执行相同的操作

3:名称中可能有额外的字符(如空格)或特殊字符。如果它只是你可以删除它们并在那之后进行合并。使用此:gsub('[^[:alnum:]]','',tolower(iconv(A$company_name, to='ASCII//TRANSLIT')))。这将确保你摆脱所有不需要的东西。

答案 1 :(得分:0)

[R

merge(table_a, table_b, by = "company_name", all.x = TRUE)

Excel

  

答:来自table1的身份   B:来自table1的company_name   C:来自table2的company_name   D:来自table2的registration_number。

在任何其他列中使用此公式可获取registration_number

Vlookup(B2, $C$2:$D$10000001, 2, FALSE)