嗨,伙计们,我知道在R中连接表的问题很少,我尝试了其中的大多数,但它们都没有工作,在我的例子中,我有两个表--第一个(A)有两个列(Id和company_name),70000行,第二个(B)有company_name,registration number .....etc,有10,000,000行。
我想加入他们的行列,为所有在A的公司获得registration number。
提示,我试图在excel中使用inner join、sqldf、fuzzyjoin和vlookup进行合并,但它没有返回A中的所有记录。
发布于 2017-12-06 11:13:30
如果没有任何示例代码或数据,很难给出答案,但让我试试。
我在这里可以看到三个可能的问题。
他:你想在你的结果集中拥有来自A的所有条目吗?即使没有来自B的匹配?然后,您应该使用左外部连接。例如,对于合并,您应该有merge(A,B,by="company_name",all.x = TRUE)
如我所见,你想加入company_name,A和B都是类字符吗?有时,由于某种原因,在读取文件时会将其转换为考虑因素。用A$company_name = as.character(A$company_name)将它们转换为字符,并对B进行同样的转换
他说:也许名字中有额外的字符(比如空格)或特殊字符。如果只是可以移除它们,然后再进行合并。使用这个:gsub('[^[:alnum:]]','',tolower(iconv(A$company_name, to='ASCII//TRANSLIT')))。这将确保你摆脱所有不想要的东西。
https://stackoverflow.com/questions/47672654
复制相似问题