我的数据框每行都有CategoryCodes
。多行具有相同的CategoryCodes
,并且有几百个唯一CategoryCodes
。我必须为每一行分配类别的名称,从参考数据框中提取类别。我尝试使用下面的语法,但这给了我一个输出,其中MyData中的行数增加了一倍。输出应与MyData具有相同的行数。我哪里错了?
Combineddf<-sqldf("select * from MyData left join
ReferenceDf using (CategoryCodes)")
参考数据:
CategoryCodes Class
5 120500 Tools
6 166300 Spare Parts
7 280200 Spare Parts
8 280200 Spare Parts
9 295200 Spare Parts
10 165000 Spare Parts
MyData(超过30列):
X Z CategoryCodes Y
5 OW EA 120300 S
6 ANB EA 120500 S
7 ANB FOT 120300 S
8 ANB EA 120500 S
9 ANB EA 120300 S
10 MIS EA 120500 S
答案 0 :(得分:2)
当存在多个匹配项时,会发生连接中增加的行数。
在Reference Data
中,您可以看到重复的类别代码 - 例如,第7行和第8行都有代码280200
,因此280200
中的任何代码MyData
都会与那些行。
也许您只想选择ReferenceDF
的唯一行?像
Combineddf<-sqldf("select * from MyData left join
(select distinct * from ReferenceDf)
using (CategoryCodes)")