I found this strange behavior when assigning a position value. If the variable has the same name as the column, it thinks we're talking about a column:
library(data.table) dt1 <- data.table(a = integer(1)) a <- 18 dt1[1, a:=a]
Result:
> dt1 a 1: 0
We can avoid this by using different names:
dt2 <- data.table(a = integer(1)) b <- 18 dt2[1, a:=b]
Result:
>dt2 a 1: 18
But is there any other way to do this without changing the variable name? I read about the notation .() ..() , but I'm not sure if I can use it here, something like:
dt1 <- data.table(a = integer(1)) a <- 18 dt1[1, a:=..(a)] Error in eval(expr, envir, enclos) : could not find function ".."
source share