Hi, I have two questions: 1. How do I combine "DF$F =" and "DF$G =" into one function? (The original dataset contains many more columns for which I want to execute the same operation) 2. How do I improve the ave function so that the value DF(12,G) = 0 instead of 1 (see bold font)? Both DF(12,B)=DF(6,B) and DF(12,C)=DF(6,C), so I cannot distinguish between both rows, which is why I want DF(12,G) = 0, leaving DF(9,G) = 2.
Please consider the example below: DF = data.frame(read.table(textConnection(" A B C D E 1 1 a 1999 1 0 2 1 b 1999 0 1 3 1 c 1999 0 1 4 1 d 1999 1 0 5 2 c 2001 1 0 6 2 d 2001 0 1 7 3 a 2004 0 1 8 3 b 2004 0 1 9 3 d 2004 0 1 10 4 b 2001 1 0 11 4 c 2001 1 0 12 4 d 2001 0 1"),head=TRUE,stringsAsFactors=FALSE)) DF = DF[order(DF$B,DF$C),] DF$F = ave(DF$D,DF$B, FUN = function(x) cumsum(x)-x) DF$G = ave(DF$E,DF$B, FUN = function(x) cumsum(x)-x) DF A B C D E F G 1 1 a 1999 1 0 0 0 7 3 a 2004 0 1 1 0 2 1 b 1999 0 1 0 0 10 4 b 2001 1 0 0 1 8 3 b 2004 0 1 1 1 3 1 c 1999 0 1 0 0 5 2 c 2001 1 0 0 1 11 4 c 2001 1 0 1 1 4 1 d 1999 1 0 0 0 6 2 d 2001 0 1 1 0 12 4 d 2001 0 1 1 1 9 3 d 2004 0 1 1 2 Thanks for your help! -- View this message in context: http://r.789695.n4.nabble.com/conditional-seq-tp3321327p3321327.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.