An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20090305/d273eb67/attachment-0002.pl>
Extract Row on Criteria
3 messages · Bob Roberts, David Winsemius
See if this gets you further along:
?order
?rev
?"["
> df <- data.frame(x = 1:20, rsamp = sample(1:20,20), Lets
=LETTERS[1:20])
> ord <- order(df$rsamp)
# creates a sorted vector of row numbers
> df[ord,]
x rsamp Lets
16 16 1 P
14 14 2 N
18 18 3 R
15 15 4 O
1 1 5 A
3 3 6 C
9 9 7 I
19 19 8 S
20 20 9 T
10 10 10 J
7 7 11 G
17 17 12 Q
13 13 13 M
8 8 14 H
11 11 15 K
12 12 16 L
2 2 17 B
6 6 18 F
4 4 19 D
5 5 20 E
#rev ... reverses
> df[rev(ord),]
x rsamp Lets
5 5 20 E
4 4 19 D
6 6 18 F
2 2 17 B
12 12 16 L
11 11 15 K
8 8 14 H
13 13 13 M
17 17 12 Q
7 7 11 G
10 10 10 J
20 20 9 T
19 19 8 S
9 9 7 I
3 3 6 C
1 1 5 A
15 15 4 O
18 18 3 R
14 14 2 N
16 16 1 P
# successive applications of [ , ][ , ] can be very powerful
# this is the first 10 of the reverse sorted by rsamp df
> df[rev(ord),][1:5,]
x rsamp Lets
5 5 20 E
4 4 19 D
6 6 18 F
2 2 17 B
12 12 16 L
>
And next time, ... please use dput( ) for offering a sample dataframe.
David Winsemius On Mar 5, 2009, at 9:57 PM, Bob Roberts wrote: > Hi, > I have a data frame and I want to extract the entire rows that > have the 20 largest numbers in column Z. How would I go about doing > that? Thanks. > > > > > [[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.
On Mar 5, 2009, at 10:38 PM, David Winsemius wrote:
See if this gets you further along: ?order ?rev ?"["
df <- data.frame(x = 1:20, rsamp = sample(1:20,20), Lets
=LETTERS[1:20])
ord <- order(df$rsamp)
# creates a sorted vector of row numbers
df[ord,]
x rsamp Lets 16 16 1 P 14 14 2 N 18 18 3 R 15 15 4 O 1 1 5 A 3 3 6 C 9 9 7 I 19 19 8 S 20 20 9 T 10 10 10 J 7 7 11 G 17 17 12 Q 13 13 13 M 8 8 14 H 11 11 15 K 12 12 16 L 2 2 17 B 6 6 18 F 4 4 19 D 5 5 20 E #rev ... reverses
df[rev(ord),]
x rsamp Lets 5 5 20 E 4 4 19 D 6 6 18 F 2 2 17 B 12 12 16 L 11 11 15 K 8 8 14 H 13 13 13 M 17 17 12 Q 7 7 11 G 10 10 10 J 20 20 9 T 19 19 8 S 9 9 7 I 3 3 6 C 1 1 5 A 15 15 4 O 18 18 3 R 14 14 2 N 16 16 1 P # successive applications of [ , ][ , ] can be very powerful # this is the first 10 of the reverse sorted by rsamp df
... er, ^5^
df[rev(ord),][1:5,]
x rsamp Lets 5 5 20 E 4 4 19 D 6 6 18 F 2 2 17 B 12 12 16 L
And next time, ... please use dput( ) for offering a sample dataframe. -- David Winsemius On Mar 5, 2009, at 9:57 PM, Bob Roberts wrote:
Hi, I have a data frame and I want to extract the entire rows that have the 20 largest numbers in column Z. How would I go about doing that? Thanks. [[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.
______________________________________________ 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.