4

我正在尝试合并两个数据表。合并适用于merge.data.frame,但不适用于merge.data.table. 可能与我使用的特殊字符有关吗?我之前通过几个处理步骤获得了data.tables DT1和。当我手动输入数据时,test2不会出现此问题:test2DT1

> 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.15data.table v. 1.8.8。这两个对象(test2 和 DT1)可供下载

4

0 回答 0