только те колонки data.table, которые соответствуют условию (например, что максимум в колонке больше 100)?
Хотелось бы использовать := оператор, но ему нужны названия колонок слева, а я бы не хотел создавать отдельную переменную с именами колонок.
Как пример:
as.data.table(mtcars)[, lapply(.SD, round), .SDcols = function(x) {max(x) > 100}]
Здесь по идее изменятся только колонки "disp" и "hp".
я бы тип такого делал my_mtcars <- copy(mtcars) for (x in names(my_mtcars)) set(my_mtcars, i = which(my_mtcars[[x]] > 100), j = x, 999)
# Удаляем столбцы, все значения которых одинаковые cols_to_del <- sapply(dt, uniqueN) cols_to_del <- names(cols_to_del[cols_to_del == 1]) dt[, (cols_to_del) := NULL] Под другую логику легко адаптировать
Обсуждают сегодня