используя данные.функция таблица в lapply на список с данными.каркасы элементов (ответ = setdt)


Первый вопрос, дайте мне знать, если больше информации или фон нужен в комментарии, пожалуйста.

lapply(list.of.dfs, fun(x) x)

Многие ответы здесь и в других местах называешь lapply в данных.функция таблицы. Я хочу сделать наоборот, что на бумаге должно быть легко, но я не могу получить его на работу с данными.таблица функции.

У меня есть список, который содержит несколько данных.кадры с одинаковыми столбцами, но разное число строк. Это происходит из-за выхода нескольких сценариям, поэтому они должны рассматриваться отдельно и не rbind объед.

 #sample list of data.frames  scenarios <- replicate(5, data.frame(a=sample(letters[1:4],10,T),                              b=sample(1:2,10,T),                              x=sample(1:10, 10),                               y =runif(10)), simplify = FALSE)

Я хочу, чтобы добавить столбец для каждого элемента, который является суммой X и Y на A и B.Из данных.таблицы документации в разделе "Примеры" процесс, чтобы сделать это по одним данным.рамка следующее (поиск: добавить новый столбец со ссылкой на группы в формате doc страницы):

test <- as.data.table(scenarios[[1]]) #must specify data.table classtest[, newcol := sum(x/y), by = .(a , b)][]

Я хочу использовать lapply чтобы сделать то же самое для каждого элемента в списке сценариев и возвращает список.Моя последняя попытка:

lapply(scenarios, function(i) {as.data.table(i[, z := sum(x/y), by=.(a,b)]); i})unused argument (by = .a,b))

но я продолжаю получать ошибки

После заливки на результаты этого и других сайтов я не смог решить эту проблему. Что я уверен, значит что-то я не понимаю о вызове анонимной функции, и/или используя данные.функция таблицы. Это один из тех случаев, когда вы используете [ в качестве функции? Или, возможно, мой.данных.таблица невпопад.

This answer

был шаг в правильном направлении (я так думаю), он охватывает использование удовольствие(х) {...

Спасибо!