我正在尝试合并两个数据表。合并适用于merge.data.frame
,但不适用于merge.data.table
. 可能与我使用的特殊字符有关吗?我之前通过几个处理步骤获得了data.tables DT1
和。当我手动输入数据时,test2
不会出现此问题:test2
DT1
> test2
lfm_id lfm_plays
1: Herbert Grönemeyer 115
> DT1
lfm_id value
1: Herbert Grönemeyer 5
> class(test2) # check objects
[1] "data.table" "data.frame"
> class(DT1)
[1] "data.table" "data.frame"
> class(test2$lfm_id) # check column types
[1] "character"
> class(DT1$lfm_id)
[1] "character"
> merge(DT1, test2, by='lfm_id')
Empty data.table (0 rows) of 3 cols: lfm_id,value,lfm_plays
# merge failed!
# trying with the 'old' data.frame merge:
> merge.data.frame(DT1, test2, by='lfm_id')
lfm_id value lfm_plays
1 Herbert Grönemeyer 5 115
# works!
# the keys match, too:
> DT1$lfm_id==test2$lfm_id
[1] TRUE
我使用R 2.15
和data.table v. 1.8.8
。这两个对象(test2 和 DT1)可供下载。