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]]
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.
Reasonably Related Threads
- Select the rows in a dataframe that matches a criteria in another dataframe
- Generating correlated data from uniform distribution
- Splitting row names up and then adding up the columns associated with criteria from the parts of the site coding (help)
- Fill dataframe from a table according to a criteria
- Ordering every row of a matrix while ignoring off diagonal elements