Mi sembra che questa sia una domanda abbastanza facile, ma per la vita di me non riesco a trovare la risposta. Ho un dataframe abbastanza standard, e quello che sto cercando di fare è sommare una colonna di valori fino a che non raggiungono un certo valore (o quel valore esatto o maggiore di esso), a quel punto cade un 1 in una nuova colonna (etichettata tenere) e riavvia la somma a 0.Somma cumulativa fino al raggiungimento massimo, quindi ripetere da zero nella riga successiva
Ho una colonna di minuti, le differenze tra i minuti, una colonna di mantenimento e una colonna di somma cumulativa (l'esempio che sto usando è molto più pulito del set di dati completo effettivo)
minutes difference keep difference_sum
1052991158 0 0 0
1052991338 180 0 180
1052991518 180 0 360
1052991698 180 0 540
1052991878 180 0 720
1052992058 180 0 900
1052992238 180 0 1080
1052992418 180 0 1260
1052992598 180 0 1440
1052992778 180 0 1620
1052992958 180 0 1800
la somma differenza colonna è stata calcolata con il codice
caribou.sub$difference_sum<-cumsum(difference)
Quello che mi piacerebbe fare è eseguire il codice sopra con la condizione che, quando il valore sommato raggiunge o 1470 o qualsiasi numero maggiore di quello, mette un 1 nella colonna keep e poi ricomincia la somma in seguito, e continua a correre per tutto il set di dati.
Grazie in anticipo, e se avete bisogno di ulteriori informazioni fatemelo sapere.
Ayden
Vuol 'difference_sum' nuovo a 0 se 1470 è raggiunto? Un set di esempio leggermente più lungo, incluso quando 'difference_sum' incrocia la soglia, sarebbe d'aiuto. – alexwhan
No, questo è quello che sto cercando di fare, la colonna della differenza di differenza è attualmente calcolata con il codice caribou.sub $ difference_sum <-cumsum (difference). Continua ad andare avanti fino al set di dati. – HeidelbergSlide
OK, ma dopo aver superato la soglia, come si fa a calcolare la soglia successiva? Usi l'eccedenza oltre il 1470 o inizi a 0 dalla riga successiva? – alexwhan