Я пытаюсь объединить множество манипуляций data.table в некоторый более быстрый код. Я создаю пример с меньшей таблицей данных. Я надеюсь, что у кого-то есть лучшее решение, чем неуклюжий (неловкий) код, который я разработал.Сложные данные.table подмножество и манипуляции
Для каждой группы, я хочу:
1) Проверьте есть как значение TRUE и FALSE, в колонке со, и если есть:
2) Вычесть значение х, соответствующее самым высоким значение V от каждого значения х в одной и той же группы и положить, что это число в новом столбце
Таким образом, в группе 3, если наивысший v значение равно 10, и в том же ряду х 0,212, я вычитал бы 0,212 из каждого значения x, соответствующего группе 3, и поместил бы это число в новый столбец
3) Удалите все строки, соответствующие группам без ИСТИНЫ и ЛОЖЬ в столбце w.
set.seed(1)
test <- data.table(v=1:12, w=runif(12)<0.5, x=runif(12),
y=sample(2,12,replace=TRUE), z=sample(letters[1:3],12,replace=TRUE))
setkey(test,y,z)
test[,group:=.GRP,by=key(test)]
Что такое «неловко» попытку вы пробовали ? –