【问题标题】:join two tables in R using Names from both tables [closed]使用两个表中的名称连接 R 中的两个表[关闭]
【发布时间】:2017-12-06 10:58:07
【问题描述】:

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

我想和他们一起为 A 的所有公司获取registration number

提示,我尝试在 Excel 中使用 sqldffuzzyjoinvlookup 合并 inner join,但它没有返回 A 中的所有记录。

【问题讨论】:

  • merge(A, B, "company_name", all.x = TRUE)

标签: r sqldf fuzzyjoin


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢您的回答,我想我应该更清楚地说明我的错,是的,我想要 A 的条目,因为我 100% 确定 A 的所有公司都在 B。我已将两个 company_name 列转换为字符并尝试合并功能,使用 SQLDF 和模糊连接包加入
  • 你能举一个例子,它应该可以工作,但不是吗?这样就更容易找到解决方案
  • 这是 A One Stop Shop 中的公司之一,在 B One Stop Shop 中也是如此,但是当我加入两张桌子时,我得到了 Null
  • str(B$CompanyName) chr [1:1048575] "LTD" "BIG IMPACT GRAPHICS LIMITED" "NNOV8 LIMITED" "NSPIRED LTD" "NVERTD DESIGNS LIMITED" "OBAC LIMITED" ... > str(A$name) chr [1:57308] “Cantalis Ltd” “一站式商店” “EJ FINANCIAL LIMITED” “A J Jones 先生和 S Al-Shamma 夫人” ...
  • 我没有在 B 看到 一站式商店,但是!对我来说,B 中的所有内容都是大写的,但 A 中没有。在两个表中使用 tolower() 表示 company_name
【解决方案2】:

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)

【讨论】:

  • 这两种情况我都试过了,但之前没有用
  • 您是否检查了 R 中的大小写不匹配和列数据类型不匹配?
  • 是的,我做了两列都是字符类型
  • str(B$CompanyName) chr [1:1048575] "LTD" "BIG IMPACT GRAPHICS LIMITED" "NNOV8 LIMITED" "NSPIRED LTD" "NVERTD DESIGNS LIMITED" "OBAC LIMITED" ... > str(A$name) chr [1:57308] “Cantalis Ltd” “一站式商店” “EJ FINANCIAL LIMITED” “A J Jones 先生和 S Al-Shamma 夫人” ...
猜你喜欢
  • 1970-01-01
  • 2019-03-23
  • 2018-07-06
  • 2015-05-01
  • 2023-04-09
  • 2021-10-12
  • 2022-01-14
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多