:
data.frame(
id=c( 1143, 1143, 1144, 1145, 1145 ),
date=c("2010-03-23", "2010-06-29", "2008-01-01", "2010-03-23", "2011-01-12" ),
alb=c( 41, 39, 34, 42, 45 ),
end=c("2010-12-15", "2010-12-15", "2009-08-06", "2012-10-25", "2012-10-25" )
)
dplyr:
library(dplyr)
df %>%
group_by(id) %>%
mutate(start=date, stop=lead(start, default=end[1]))
#
#
#
#
#
#
#
#
#
base:
do.call('rbind', by(df, df$id, function(x) {
cbind(x, start=x$date, stop=lead(x$date, default=x$end[1]))
}))