Sort Observations in Dataset Arrays
This example shows how to sort observations (rows) in a dataset array using the command line. You can also sort rows using the Variables editor.
Sort observations in ascending order.
Load the sample dataset array, hospital
. Sort the observations by the values in Age
, in ascending order.
load hospital dsAgeUp = sortrows(hospital,'Age'); dsAgeUp(1:10,{'LastName','Age'})
ans = LastName Age XUE-826 {'JACKSON' } 25 FZR-250 {'HALL' } 25 PUE-347 {'YOUNG' } 25 LIM-480 {'HILL' } 25 SCQ-914 {'JAMES' } 25 REV-997 {'ALEXANDER'} 25 XBR-291 {'GARCIA' } 27 VNL-702 {'MOORE' } 28 DTT-578 {'WALKER' } 28 XAX-646 {'COOPER' } 28
The youngest patients are age 25.
Sort observations in descending order.
Sort the observations by Age
in descending order.
dsAgeDown = sortrows(hospital,'Age','descend'); dsAgeDown(1:10,{'LastName','Age'})
ans = LastName Age XBA-581 {'ROBINSON'} 50 DAU-529 {'REED' } 50 XLK-030 {'BROWN' } 49 FLJ-908 {'STEWART' } 49 GGU-691 {'HUGHES' } 49 MEZ-469 {'GRIFFIN' } 49 KOQ-996 {'MARTIN' } 48 BKD-785 {'CLARK' } 48 KKL-155 {'ADAMS' } 48 NSK-403 {'RAMIREZ' } 48
The oldest patients are age 50.
Sort observations by the values of two variables.
Sort the observations in hospital
by Age
, and then by LastName
.
dsName = sortrows(hospital,{'Age','LastName'}); dsName(1:10,{'LastName','Age'})
ans = LastName Age REV-997 {'ALEXANDER'} 25 FZR-250 {'HALL' } 25 LIM-480 {'HILL' } 25 XUE-826 {'JACKSON' } 25 SCQ-914 {'JAMES' } 25 PUE-347 {'YOUNG' } 25 XBR-291 {'GARCIA' } 27 XAX-646 {'COOPER' } 28 QEQ-082 {'COX' } 28 NSU-424 {'JENKINS' } 28
Now the names are sorted alphabetically within increasing age groups.
Sort observations in mixed order.
Sort the observations in hospital
by Age
in an increasing order, and then by Weight
in a decreasing order.
dsWeight = sortrows(hospital,{'Age','Weight'},{'ascend','descend'}); dsWeight(1:10,{'LastName','Age','Weight'})
ans = LastName Age Weight FZR-250 {'HALL' } 25 189 SCQ-914 {'JAMES' } 25 186 XUE-826 {'JACKSON' } 25 174 REV-997 {'ALEXANDER'} 25 171 LIM-480 {'HILL' } 25 138 PUE-347 {'YOUNG' } 25 114 XBR-291 {'GARCIA' } 27 131 NSU-424 {'JENKINS' } 28 189 VNL-702 {'MOORE' } 28 183 XAX-646 {'COOPER' } 28 127
This shows that the maximum weight among patients that are age 25 is 189 lbs.
Sort observations by observation name.
Sort the observations in hospital
by the observation names.
dsObs = sortrows(hospital,'obsnames'); dsObs(1:10,{'LastName','Age'})
ans = LastName Age AAX-056 {'LEE' } 44 AFB-271 {'PEREZ' } 44 AFK-336 {'WRIGHT' } 45 AGR-528 {'SIMMONS'} 45 ATA-945 {'WILSON' } 40 BEZ-311 {'DIAZ' } 45 BKD-785 {'CLARK' } 48 DAU-529 {'REED' } 50 DGC-290 {'BUTLER' } 38 DTT-578 {'WALKER' } 28
The observations are sorted by observation name in ascending alphabetical order.
See Also
Related Examples
- Select Subsets of Observations
- Stack or Unstack Dataset Arrays
- Dataset Arrays in the Variables Editor
- Index and Search Dataset Arrays