O'Reilly logo

The R Book by Michael J. Crawley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Sorting Dataframes

It is common to want to sort a dataframe by rows, but rare to want to sort by columns. Because we are sorting by rows (the first subscript) we specify the order of the row subscripts before the comma. Thus, to sort the dataframe on the basis of values in one of the columns (say, Slope), we write

worms[order(Slope),]

           Field.Name   Area   Slope   Vegetation   Soil.pH     Damp   Worm.density
5     Gunness.Thicket    3.8       0        Scrub       4.2    FALSE              6
8             Ashurst    2.1       0       Arable       4.8    FALSE              4
9         The.Orchard    1.9       0      Orchard       5.7    FALSE              9
15         Pond.Field    4.1       0       Meadow       5.0     TRUE              6
16       Water.Meadow    3.9       0       Meadow       4.9     TRUE              8
12       North.Gravel    3.3       1    Grassland       4.1    FALSE              1
19         Gravel.Pit    2.9       1    Grassland       3.5    FALSE              1
2      Silwood.Bottom    5.1       2       Arable       5.2    FALSE              7
6            Oak.Mead    3.1       2    Grassland       3.9    FALSE              2
13       South.Gravel    3.7       2    Grassland       4.0    FALSE              2
18         Pound.Hill    4.4       2       Arable       4.5    FALSE              5
3       Nursery.Field    2.8       3    Grassland       4.3    FALSE              2
7        Church.Field    3.5       3    Grassland       4.2    FALSE              3
10      Rookery.Slope    1.5       4    Grassland       5.0     TRUE              7
4         Rush.Meadow    2.4       5       Meadow       4.9     TRUE              5
14  Observatory.Ridge    1.8       6    Grassland       3.8    FALSE              0
17          Cheapside    2.2       8        Scrub       4.7     TRUE              4
11        Garden.Wood    2.9      10        Scrub       5.2    FALSE              8
20          Farm.Wood    0.8      10        Scrub       5.1     TRUE              3
1         Nashs.Field    3.6      11    Grassland       4.1    FALSE              4

There are some points to notice here. Because we wanted the sorting to apply to all the columns, the column subscript (after the comma) is blank: [order(Slope),]. The original row numbers are retained in the leftmost column. Where there are ties for the sorting variable (e.g. there are ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required