大家好我知道在R中加入表格的问题很少,我尝试了大部分但是他们没有工作,在我的情况下,我有两个表第一个(A)有两列({ {1}}和Id
),70,000行,第二个(B)有company_name
,company_name
.....等10,000,000行。
我想加入他们以获取A中所有公司的registration number
。
提示,我尝试在excel中使用registration number
,inner join
和sqldf
合并fuzzyjoin
,但它没有返回A中的所有记录。
答案 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)