Comment fusionner deux données.table par différents noms de colonne?

J'ai deux données.tableau X et Y.

colonnes dans X: area, id, value

les colonnes en Y: ID, price, sales

Créer les deux données.tables:

X = data.table(area=c('US', 'UK', 'EU'),
               id=c('c001', 'c002', 'c003'),
               value=c(100, 200, 300)
              )

Y = data.table(ID=c('c001', 'c002', 'c003'),
               price=c(500, 200, 400),
               sales=c(20, 30, 15)
              )

Et j'ai mis les clés pour X et Y:

setkey(X, id)
setkey(Y, ID)

Maintenant, j'essaie de joindre X et Y par id dans X et ID dans Y:

merge(X, Y)
merge(X, Y, by=c('id', 'ID'))
merge(X, Y, by.x='id', by.y='ID')

Tous soulevé d'erreur en disant que les noms de colonnes dans la by argument invalide.

J'ai fait référence au manuel d'utilisation de données.table et a trouvé le merge fonction ne supportant pas la by.x et by.y arguments.

Comment pourrais-je me joindre deux données.les tables par les différents noms de colonne sans changer les noms de colonne?

Ajouter:

J'ai réussi à joindre les deux tables par X[Y], mais pourquoi merge fonction échoue dans les données.de la table?

InformationsquelleAutor Zelong | 2015-04-25