2016-08-04 6 views
-5

Ich möchte col c phys_pos den Wert in Spalte position plus den akkumulativen Wert von col b length. In Excel ist die Berechnung: =A2+SUM($B$2:B2), aber Excel kann nicht so viele Daten verarbeiten. Danke allen.

Die Daten Ich mag würde:

position length phys_pos 
12 45 57 
97 0 142 
135 0 180 
498 0 543 
512 0 557 
16 67 128 
76 0 188 
89 0 201 
101 0 213 
152 0 264 
3 103 218 
19 0 234 
76 0 291 
88 0 303 
+2

Berechnung der kumulativen Summe in R. trivial ist einige der Forschung. – Roland

+0

@Roland. Vielen Dank für Ihre Vorschläge, ich bin dankbar. Ich werde mich um R kümmern, ich will es, aber finde es härter als ihr Leute. Irgendwann werde ich auch hier Menschen helfen können, hoffe ich! – Cathyt10

Antwort

-2

Blick in dplyrhttps://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html

install.packages("dplyr") 

library(dplyr) 

df <- df %>% mutate(phys_pos=cumsum(length)+position) 

Ich gehe davon aus Ihrer data.frame ist df namens

Oder mit Sockel R

df$phys_pos <- cumsum(df$length) + df$position 
+1

Warum empfehlen Sie dplyr hier? Sie können es genauso einfach mit der Basis R machen. – Roland

+1

@dimitris_ps. Vielen Dank, hat ein Vergnügen gemacht. – Cathyt10

-2

Vorausgesetzt, dass Ihre Daten in einem Datenrahmen gespeichert werden als "dat":

acc <- 0 
for(i in 1:nrow(dat)){ 
    acc <- acc + dat[i,"length"] 
    dat[i,"phys_pos"] <- dat[i,"position"]+acc 
} 

Das ist einfach so. Wenn Sie einige Tutorials machen würden, könnten Sie es ziemlich schnell selbständig lernen.

+1

Verwenden Sie keine Schleife dafür. Verwenden Sie die "Cumsum" -Funktion. – Roland

+0

Ich stimme zu, das sieht sauberer und effizienter aus. Benutze die obige Antwort. –

+1

@ Ulli Schmid. Vielen Dank für Ihre Vorschläge, ich bin dankbar. Ich werde mich um R kümmern, ich will es, aber finde es härter als ihr Leute. Irgendwann werde ich auch hier Menschen helfen können, hoffe ich! – Cathyt10