我有兩個data.table X和Y。如何通過不同的列名合併兩個data.table?
列X:在area, id, value
列Ÿ:ID, price, sales
創建兩個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)
)
而我爲了X和設置鍵ÿ :
setkey(X, id)
setkey(Y, ID)
現在我嘗試id
在X和ID
在Ÿ加入X和ÿ:
merge(X, Y)
merge(X, Y, by=c('id', 'ID'))
merge(X, Y, by.x='id', by.y='ID')
所有提出的錯誤說法在by
參數中的無效列名稱。
我參考了data.table的手冊,發現merge
函數不支持by.x
和by.y
的參數。
如何在不更改列名稱的情況下按不同列名稱連接兩個data.tables?
追加:
我設法X[Y]
加入兩個表,但爲什麼merge
功能data.table失敗?
請檢查http://stackoverflow.com/questions/16047253/merging-tables-with-different-column-names或http:// stackoverflow.com/questions/27612859/joining-tables-based-on-different-column-names – akrun
@akrun謝謝。我確實檢查了這兩個帖子。我設法通過'X [Y]'加入** X **和** Y **,但我仍然無法通過使用merge函數來完成它。我很困惑爲什麼'merge'在data.table中失敗。 – Zelong
by.x和by.y尚未針對data.tables實施。 FR被提交。檢查http://stackoverflow.com/questions/14069796/merging-data-tables-based-on-columns-names –