R cumulative sum based upon other columns -


i have data.frame below. data sorted column txt , column val. summ column sum of value in val colummn , summ column value earlier row provided current row , earlier row have same value in txt column...how in r?

txt=c(rep("a",4),rep("b",5),rep("c",3)) val=c(1,2,3,4,1,2,3,4,5,1,2,3) summ=c(1,3,6,10,1,3,6,10,15,1,3,6) dd=data.frame(txt,val,summ) > dd    txt val summ 1      1    1 2      2    3 3      3    6 4      4   10 5    b   1    1 6    b   2    3 7    b   3    6 8    b   4   10 9    b   5   15 10   c   1    1 11   c   2    3 12   c   3    6 

if "most earlier" (which in english more written "earliest") mean nearest, implied expected output, you're talking cumulative sum. can apply cumsum() separately each group of txt ave():

dd <- data.frame(txt=c(rep("a",4),rep("b",5),rep("c",3)), val=c(1,2,3,4,1,2,3,4,5,1,2,3) ); dd$summ <- ave(dd$val,dd$txt,fun=cumsum); dd; ##    txt val summ ## 1      1    1 ## 2      2    3 ## 3      3    6 ## 4      4   10 ## 5    b   1    1 ## 6    b   2    3 ## 7    b   3    6 ## 8    b   4   10 ## 9    b   5   15 ## 10   c   1    1 ## 11   c   2    3 ## 12   c   3    6 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -