Я использую R и у меня есть таблица данных, как показано ниже.Значения var1 и var2 связаны с контекстом (упорядочены по возрастанию var1 ) для каждой строки, в то время как var3 является совокупной суммой var3 для каждой группы ( g1 , g2 , g3 ). var4 - это переменная, разбитая на десятые доли в стеке (в данных по 10 строк на группу).
Проблема
РЕДАКТИРОВАТЬ: Для каждого значения var4 мне нужно вычислить минимум var1 из минимума всех var3 , то есть> = каждый var4 ?
У меня есть миллионы строк данных этого типа, поэтому производительность важна
Любая помощь будет принята с благодарностью
Старый вопрос: Для каждой строки: Если var4 <минимум всех <strong>var3 для группы, должен быть возвращен минимум всех var1 ,Если var4 > минимум всех var 3 , то минимум var1 из строк с максимальным значением var3 , то есть <= <strong>var4 должно быть возвращено.
g1(char) g2(POSIXct) g3(int) var1(num) var2(num) var3(num) var4(num)
A 01/01/2019 04:30:00 -30 -100 1661 1661 280
A 01/01/2019 04:30:00 -30 0 0 1661 560
A 01/01/2019 04:30:00 -30 57 720 2381 840
A 01/01/2019 04:30:00 -30 59 0 2381 1120
A 01/01/2019 04:30:00 -30 70 0 2381 1400
A 01/01/2019 04:30:00 -30 77 0 2381 1680
A 01/01/2019 04:30:00 -30 91 80 2461 1960
A 01/01/2019 04:30:00 -30 93 0 2461 2240
A 01/01/2019 04:30:00 -30 95 0 2461 2520
A 01/01/2019 04:30:00 -30 99 340 2801 2800
Ожидаемые результаты для одной группы будут выглядеть так:
g1(char) g2(POSIXct) g3(int) var1 var2 var3 var4 var5
A 01/01/2019 04:30:00 -30 -100 1661 1661 280 -100
A 01/01/2019 04:30:00 -30 0 0 1661 560 -100
A 01/01/2019 04:30:00 -30 57 720 2381 840 -100
A 01/01/2019 04:30:00 -30 59 0 2381 1120 -100
A 01/01/2019 04:30:00 -30 70 0 2381 1400 -100
A 01/01/2019 04:30:00 -30 77 0 2381 1680 57
A 01/01/2019 04:30:00 -30 91 80 2461 1960 57
A 01/01/2019 04:30:00 -30 93 0 2461 2240 57
A 01/01/2019 04:30:00 -30 95 0 2461 2520 99
A 01/01/2019 04:30:00 -30 99 340 2801 2800 99