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 ...

Get The R Book now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.