If I understand you correctly, you are trying to find the cumulative maximum from the end within each level of the factor. If this is what you are trying to do, then here is one way you might like to do it. First, define the function:
> cumMax <- function(x) Reduce(max, x, right = TRUE, accumulate = TRUE) Here is how you might use it: > test A B 1 a 3 2 a 2 3 a 1 4 b 3 5 b 2 6 c 2 7 c 3 8 c 1 9 c 1 > (test <- within(test, B <- ave(B, A, FUN = cumMax)) A B 1 a 3 2 a 2 3 a 1 4 b 3 5 b 2 6 c 3 7 c 3 8 c 1 9 c 1 -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Christopher Peters Sent: Monday, 20 June 2011 6:21 AM To: r-help@r-project.org Subject: [R] For loop by factor. I have a data.frame as follows: a 3 a 2 a 1 b 3 b 2 c 2 c 3 c 1 c 1 Each factor (a, b, c) should be monotonically decreasing, notice that factor 'c' is not. I could use some help to figure out how to form a logical structure (mostly just syntax), that will check each 'next value' for each factor to see if it is less than the previous value. If it is less than the previous value, do nothing, else subtract 'next value' from 'current value', add that amount to the starting value and each previous value to the 'next value' is greater than 'previous value'. So basically the data.frame would look like: a 3 a 2 a 1 b 3 b 2 c 3 c 3 c 1 c 1 Thanks for your help! __________________________________ Christopher P. Peters Research Associate Center for Energy Studies http://www.enrg.lsu.edu/staff/peters Energy, Coast & Environment Building Louisiana State University Baton Rouge, LA 70803 Telephone: 225-578-4400 Fax: 225-578-4541 [[alternative HTML version deleted]] ______________________________________________ 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. ______________________________________________ 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.