Ho due data.table X e Y.Come unire due data.table con nomi di colonne diversi?
colonne in X: area, id, value
colonne in Y: ID, price, sales
creare le due data.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)
)
E io impostare le chiavi per X e Y :
setkey(X, id)
setkey(Y, ID)
Ora cerco di unire X e Y da id
in X e ID
in Y:
merge(X, Y)
merge(X, Y, by=c('id', 'ID'))
merge(X, Y, by.x='id', by.y='ID')
Tutto errore sollevato dicendo che i nomi delle colonne nella by
argomento non valido.
Mi sono riferito al manuale di data.table e ho trovato la funzione merge
che non supporta gli argomenti by.x
e by.y
.
Come posso unire due data.tables con nomi di colonna diversi senza modificare i nomi delle colonne?
Append:
sono riuscito a unire le due tabelle X[Y]
, ma perché merge
funzione fallisce in data.table?
Si prega di controllare http://stackoverflow.com/questions/16047253/merging-tables-with-different-column-names o http: // stackoverflow.com/questions/27612859/joining-tables-based-on-different-column-names – akrun
@akrun Grazie. Ho controllato i due post. Sono riuscito a unire ** X ** e ** Y ** di 'X [Y]', ma non riuscivo ancora a realizzarlo usando la funzione 'unione '. Sono abbastanza confuso sul perché 'merge' fallisce in data.table. – Zelong
by.x e by.y non sono ancora stati implementati per data.tables. Un FR è archiviato. Controlla http://stackoverflow.com/questions/14069796/merging-data-tables-based-on-columns-names –