Jojje Andersson: > I have a dataframe with in one column an id-variable and in another a > year-variable. One id-number can occur several years. I have sorted the > dataframe on id then on year so the same id-number is sorted by year with > the first occurens at top. > > Now I want to make a subset of this dataframe with just the first year the > id-number occur, so the first case of every id. > > Id Year > 123456 2001 > 123456 2002 > 123456 2003 > 655432 2001 > 655432 2002 > 655432 2003
The following should work (even if the data frame was *not* sorted): Id = c(123456,123456,123456,655432,655432,655432) Year = c(2001,2002,2003,2001,2002,2003) d = data.frame(Id, Year) aggregate(d, list(Id), min)[,-1] Output: Id Year 1 123456 2001 2 655432 2001 -- Karl Ove Hufthammer ______________________________________________ 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.