Подтвердить что ты не робот

Обновить более одного столбца таблицы данных.

Можно ли обновить более одного столбца таблицы данных в одном и том же выражении?

Что-то вроде

dt[,onecol:=1 anothercol:=2]

Я видел несколько примеров, где они делают

dt[,c("onecol","anothercol"):=1]

но я не знаю, как назначить разные формулы для каждого столбца

4b9b3361

Ответ 1

Да, это было возможно с версии 1.8.4:

library(data.table)
dt <- data.table(a=1:4, b=4:1)
dt[,c("a", "b") := list(min(a), max(b))]
# dt
#    a b
# 1: 1 4
# 2: 1 4
# 3: 1 4
# 4: 1 4

Или, делая то же самое более читаемым способом:

dt <- data.table(a=1:4, b=4:1)
dt[,`:=`(a = min(a),
         b = max(a))]
dt
#    a b
# 1: 1 4
# 2: 1 4
# 3: 1 4
# 4: 1 4

Найдите текущий файл data.table NEWS для "Несколько LHS", чтобы увидеть, что это также будет работать с аргументом by=.