June 2007
Beginner to intermediate
950 pages
27h 8m
English
Sometimes there are multiple sorting variables, but the variables have to be sorted in opposing directions. In this example, the task is to order the database first by vegetation type in alphabetical order (the default) and then within each vegetation type to sort by worm density in decreasing order (highest densities first). The trick here is to use order (rather than rev(orderi)) but to put a minus sign in front of Worm.density like this:
worms[order(Vegetation,-Worm.density),]
Field.Name Area Slope Vegetation Soil.pH Damp Worm.density
2 Silwood.Bottom 5.1 2 Arable 5.2 FALSE 7
18 Pound.Hill 4.4 2 Arable 4.5 FALSE 5
8 Ashurst 2.1 0 Arable 4.8 FALSE 4
10 Rookery.Slope 1.5 4 Grassland 5.0 TRUE 7
1 Nashs.Field 3.6 11 Grassland 4.1 FALSE 4
7 Church.Field 3.5 3 Grassland 4.2 FALSE 3
3 Nursery.Field 2.8 3 Grassland 4.3 FALSE 2
6 Oak.Mead 3.1 2 Grassland 3.9 FALSE 2
13 South.Gravel 3.7 2 Grassland 4.0 FALSE 2
12 North.Gravel 3.3 1 Grassland 4.1 FALSE 1
19 Gravel.Pit 2.9 1 Grassland 3.5 FALSE 1
14 Observatory.Ridge 1.8 6 Grassland 3.8 FALSE 0
16 Water.Meadow 3.9 0 Meadow 4.9 TRUE 8
15 Pond.Field 4.1 0 Meadow 5.0 TRUE 6
4 Rush.Meadow 2.4 5 Meadow 4.9 TRUE 5
9 The.Orchard 1.9 0 Orchard 5.7 FALSE 9
11 Garden.Wood 2.9 10 Scrub 5.2 FALSE 8
5 Gunness.Thicket 3.8 0 Scrub 4.2 FALSE 6
17 Cheapside 2.2 8 Scrub 4.7 TRUE 4
20 Farm.Wood 0.8 10 Scrub 5.1 TRUE 3
Using the minus sign only works when sorting numerical variables. For factor levels you can use the ...
Read now
Unlock full access