как оператор, вы все равно должны предоставить RHS, поскольку список вы создаете более 2 столбцов,

ся, есть небольшая разница между присваиванием data.tabel по ссылке: = в стандарте на функтальную форму.

Стандартная форма приводит RHS к вектору, функциональная форма - нет. Подробно, но не документировано, как я считаю.

library(data.table)
dt <- data.table(a = c('a','b','c'))
v <- c('A','B','C')
l <- list(v)

all.equal(copy(dt)[, new := v], copy(dt)[, `:=` (new = v)])
# [1] TRUE
all.equal(copy(dt)[, new := l], copy(dt)[, `:=` (new = l)])
# [1] "Datasets have different column modes. First 3: new(character!=list)"

copy(dt)[, new := l][]
#    a new
# 1: a   A
# 2: b   B
# 3: c   C

copy(dt)[, `:=` (new = l)][]
#    a   new
# 1: a A,B,C
# 2: b A,B,C
# 3: c A,B,C

Это основная редакция того, как я задал этот вопрос изначально.

Ответы на вопрос(1)

Ваш ответ на вопрос