sqldf - 在参考数据框中使用变量,将变量添加到输入数据框中

sqldf - using variables in reference dataframe, add a variable to input dataframe

我有一个数据框,每一行都有 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

当有多个匹配项时,连接中的行数会增加。

Reference Data 中您可以看到重复的类别代码 - 例如第 7 行和第 8 行都有代码 280200,因此 MyData 中的任何代码 280200 都将匹配这两行。

也许您只想 select ReferenceDF 的唯一行?像

Combineddf<-sqldf("select * from MyData left join 
              (select distinct * from ReferenceDf)
              using (CategoryCodes)")