0

嗨,伙计们,我知道在 R 中加入表格相关的问题很少,我尝试了其中的大部分,但它们没有用,就我而言,我有两个表格,第一个(A)有两列(Idcompany_name),70,000 行,第二个(B)有company_name, registration number.....etc 有 10,000,000 行。

我想加入他们的行列,registration number为 A 的所有公司提供服务。

提示,我尝试在 excel 中合并、inner join使用和sqldf,但它没有返回 A 中的所有记录。fuzzyjoinvlookup

4

2 回答 2

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')))。这将确保您摆脱所有不需要的东西。

于 2017-12-06T11:13:30.417 回答
0

R

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

Excel

A:来自 table1 的 ID。
B:来自 table1 的公司名称。
C:来自 table2 的公司名称。
D:来自 table2 的registration_number。

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

Vlookup(B2, $C$2:$D$10000001, 2, FALSE)
于 2017-12-06T11:09:09.360 回答