web-dev-qa-db-fra.com

Fusionner les problèmes dans R: Erreur dans fix.by (by.x, x): 'by' doit spécifier des colonnes uniquement valides

J'ai deux tables, qui sont toutes deux des sorties globales. Je voudrais les fusionner ensemble - ils ont tous deux été agrégés à partir des mêmes données, de sorte qu'ils ont les mêmes noms de colonne, mais par souci d'édification, j'ai pensé essayer les méthodes spécifiques by.x et by.y du exemples de? fusion.

merge(medA,countA, 
      by = c("manager_id", "manager_name", "grouping"))
## this works

merge(medA,countA, 
  by.x = c(medA$manager_id, medA$manager_name, medA$grouping), 
  by.y = c(countA$manager_id, countA$manager_name, countA$grouping))
## this doesn't? 
## Error in fix.by(by.x, x) : 'by' must specify uniquely valid columns

Ce n'est pas particulièrement urgent: je peux simplement utiliser la fusion qui fonctionne. Mais honnêtement, je ne comprends pas pourquoi les spécificités de by.x et by.y ne fonctionnent pas. J'ai cherché sur Google, mais je n'arrive pas à trouver de problèmes similaires. Toute pensée de votre part serait très appréciée.

5
yjtan

Avant d’utiliser merge(), vérifiez également si les classes des deux tables que vous essayez de fusionner sont identiques. Si vous essayez de fusionner la classe data.table avec data.frame dans ce cas également, cette erreur sera générée.

3