R data.table расстояние от i-го элемента до каждого оставшегося элемента по группе

Предположим, у меня есть следующие данные:Я хочу видеть, имеет ли каждый i-й элемент в x идентификатором группы элемент на 30-40 больше его.Итак, для первого элемента в x по идентификатору группы (1) я смотрю, находится ли какое-либо значение в x после 1 между значениями 31 и 41. Ответ - да, поэтому я хотел бы создать столбец valid_gap, которыйTRUE для первого элемента.В итоге я ищу получить:Я обдумывал этот вопрос с коллегой некоторое время, и мы действительно пытаемся избежать использования петли здесь, но не можем понять это.Это возможно без петли?Моя лучшая попытка что-то вроде:но я думаю о проблеме как о попытке индексировать через x, как будто в цикле, что я подозреваю, что это неправильная идея.РЕДАКТИРОВАТЬ - «Плохое» решение:Заранее спасибо!
4 голоса | спросил vryb 30 MaramThu, 30 Mar 2017 03:30:08 +03002017-03-30T03:30:08+03:0003 2017, 03:30:08

1 ответ


0
Я предполагаю, что неэквивалентное соединение должно быть быстрее цикла:Для каждого ряда мы ...найти все совпадения в интересующем интервале;сосчитать их (с помощью ---- +: = 1 =: + ---- );а потомпроверьте, превышает ли счет 0.Первый шаг может быть немного быстрее с ---- +: = 2 =: + ---- .
ответил Frank 30 MaramThu, 30 Mar 2017 05:11:16 +03002017-03-30T05:11:16+03:0005 2017, 05:11:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132