Skip to content
Prev 334396 / 398506 Next

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.