Message-ID: <1386969677.50085.YahooMailNeo@web142604.mail.bf1.yahoo.com>
Date: 2013-12-13T21:21:17Z
From: arun
Subject: dataframe manipulation
In-Reply-To: <CAHmzXO5Wth05HDt=YxbEAXoG9Jy3+PMaaxWjzQ52OTwPG_9XwQ@mail.gmail.com>
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.