0
我想使用內部連接來連接兩個data.table。可能找不到匹配,然後我想要一個空的data.table和正確的col名稱。data.table當沒有找到匹配時,內部連接會產生錯誤
dt1 <- data.table(A = c(1,2), B = c(1,2))
dt2 <- data.table(A = c(3,4), D = c(3,4))
setkey(dt1, A)
setkey(dt2, A)
dt1[dt2, nomatch = 0]
Error in xj[i] : invalid subscript type 'list'
merge(dt1, dt2,
all.x = F,
all.y = F)
Empty data.table (0 rows) of 3 cols: A,B,D
第二種方法給了我想要的答案。但我更喜歡第一種語法,因爲它速度更快。有人知道我如何解決這個錯誤,而不使用trycatch語句。
在最近版本的data.table,你不需要使用'setkey',這樣就可以減少這種到一行代碼:'dt1 [dt2,on =「A」,nomatch = 0]'。有關詳細信息,請閱讀[data.table頁面](https://github.com/Rdatatable/data.table/wiki/Getting-started)上的自動索引部分。 – lmo