0

I'm trying to join some columns from two datatables based on some conditions, but an error pops out and I'm not sure how to resolve it:

Approach 1:

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

As you can see the column SPACE HERE is clearly in xDT.

Then I tried to remove the space in the column name, and it works:

Approach 2:

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

Why approach 1 wouldn't work?

LeGeniusII
  • 900
  • 1
  • 10
  • 28

0 Answers0