Это то, что вы ищете?
dt[ , names(dt)[20:100] :=lapply(.SD, function(x) sqrt(x) ) , .SDcols=20:100]
Я слышал, что использование .SD
не так эффективно, потому что оно делает копию таблицы заранее, но если ваша таблица не является " t огромный (очевидно, это относительно зависит от ваших системных спецификаций). Я сомневаюсь, что это будет иметь большое значение.