Hi, It's not as easy as I originally thought. Here is a revision with the function beginEnd to get it done.
> date key_column begin_date end_date 1 123456 2013-01-01 2014-01-01 2 123456 2013-07-01 2014-07-01 3 789102 2012-03-01 2014-03-01 4 789102 2015-02-01 2016-02-01 5 789102 2015-02-06 2016-02-06 > beginEnd function() { date[order(date$key_column,date$begin_date),] key <- numeric(0) begin <- character(0) end <- character(0) currentKey <- as.numeric(date$key_column[1]) key <- c(key, currentKey) currentBegin <- as.character(date$begin_date[1]) begin <- c(begin, currentBegin) currentEnd <- as.character(date$end_date[1]) for (i in 2:length(date$key_column)) { if (currentKey == as.numeric(date$key_column[i])) { if (currentEnd >= as.character(date$begin_date[i])) { currentEnd <- max(currentEnd, as.character(date$end_date[i])) } else { end <- c(end, currentEnd) currentKey <- as.numeric(date$key_column[i]) key <- c(key, currentKey) currentBegin <- as.character(date$begin_date[i]) begin <- c(begin, currentBegin) currentEnd <- as.character(date$end_date[i]) } if (i == length(date$key_column)) { end <- c(end, currentEnd) } } else { end <- c(end, currentEnd) currentKey <- as.numeric(date$key_column[i]) key <- c(key, currentKey) currentBegin <- as.character(date$begin_date[i]) begin <- c(begin, currentBegin) currentEnd <- as.character(date$end_date[i]) if (i == length(date$key_column)) { end <- list(end, currentEnd) } } } result <- cbind(key, begin, end) colnames(result) <- c("key.column","begin.date","end.date") return(result) } > beginEnd() key.column begin.date end.date [1,] "123456" "2013-01-01" "2014-07-01 " [2,] "789102" "2012-03-01" "2014-03-01 " [3,] "789102" "2015-02-01" "2016-02-06" -- View this message in context: http://r.789695.n4.nabble.com/Processing-key-column-begin-date-end-date-in-R-tp4703835p4703852.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.