首页 > 解决方案 > R data.table 条件连接列 [...] 在 x 中找不到

问题描述

我正在尝试根据某些条件从两个数据表中加入一些列,但会弹出一个错误,我不知道如何解决它:

方法一:

xDT <- data.table(ID = c(1,2,3),`SPACE HERE` = c(10,20,30), ValX = c(100,200,300))
yDT <- data.table(ID = c(1,2,3),`SPACE HERE` = c(10,30,60), ValY = c(1000,2000,3000))

xDT[yDT
    , .(x.ValX)
    , on = .(ID = ID, `SPACE HERE` <= `SPACE HERE`)
    , mult = 'first']
Error in `[.data.table`(xDT, yDT, .(x.ValX), on = .(ID = ID, `SPACE HERE` <=  : 
  Column(s) [`SPACE HERE`] not found in x

如您所见,该列SPACE HERE清楚地位于 xDT 中。

然后我尝试删除列名中的空格,它可以工作:

方法二:

xDT <- data.table(ID = c(1,2,3),`SPACE_HERE` = c(10,20,30), ValX = c(100,200,300))
yDT <- data.table(ID = c(1,2,3),`SPACE_HERE` = c(10,30,60), ValY = c(1000,2000,3000))

xDT[yDT
    , .(x.ValX)
    , on = .(ID = ID, `SPACE_HERE` <= `SPACE_HERE`)
    , mult = 'first']
   x.ValX
1:    100
2:    200
3:    300

为什么方法1不起作用?

标签: rjoindata.tablespace

解决方案


推荐阅读