Това идва като приложение към този въпрос:Суми обект в колона между интервал, определен от друга колона
Това, което бих искал да знам, е как да коригирам отговора, ако искам да сумирам стойностите в B, за ((A[i+1]-A[i]==0)
или (A[i+1]-A[i]==1)
или (A[i]-A[i-1]==0)
или (A[i]-A[i-1]==1))
, където i
е индексът на реда, така че основно да сумирам B редове за A-s, които имат същата стойност + /- 1, но не сумира един и същ ред два пъти?
Опитах се да създам функция за цикъл, но се забивам, когато използвам индекси на редове с рамки за данни. Пример: Ако е даден следният кадър с данни
df
A B
[1,] 1 4
[2,] 1 3
[3,] 3 5
[4,] 3 7
[5,] 4 3
[6,] 5 2
Това, което искам да получа, е следващият кадър с данни:
df
A B
[1,] 1 7
[2,] 3 15
[3,] 5 2
Освен това, ако има голяма рамка от данни като тази:
df
chr start stop m n s
chr1 71533361 71533362 23 1 -
chr1 71533361 71533362 24 26 -
chr1 71533361 71533362 25 1 -
и искам резултатът ми да изглежда така (избрах реда, за който стойността в колона m е max):
df
chr1 71533361 71533362 24 28 -