dataframe manipulation
Hi, Try: ?d[match(unique(d$fac),d$fac),] A.K.
On Friday, December 13, 2013 4:17 PM, Gang Chen <gangchen6 at gmail.com> wrote:
Suppose I have a dataframe defined as ? ? L3 <- LETTERS[1:3] ? ? (d <- data.frame(cbind(x = 1, y = 1:10), fac = sample(L3, 10, replace = TRUE))) ? x? y fac 1? 1? 1? C 2? 1? 2? A 3? 1? 3? B 4? 1? 4? C 5? 1? 5? B 6? 1? 6? B 7? 1? 7? A 8? 1? 8? A 9? 1? 9? B 10 1 10? A I want to extract those rows that are the first occurrences for each level of factor 'fac', which are basically the first three rows above. How can I achieve that? The real dataframe is more complicated than the example above, and I can't simply list all the levels of factor 'fac' by exhaustibly listing all the levels like the following d[d$fac=='A' | d$fac=='B' | d$fac=='C', ] Thanks, Gang ??? [[alternative HTML version deleted]] ______________________________________________ R-help at 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.