www.gusucode.com > stats 源码程序 matlab案例代码 > stats/ReorderCategoryLevelsinNominalArraysExample.m

    %% Reorder Category Levels in Nominal Arrays  
% This example shows how to reorder the category levels in nominal arrays
% using |reorderlevels|. By definition, nominal array categories have no
% natural ordering. However, you might want to change the order of levels
% for display or analysis purposes. For example, when fitting a regression
% model with categorical covariates, |fitlm| uses the first level of a nominal
% independent variable as the reference category.   

% Copyright 2015 The MathWorks, Inc.


%% Load sample data. 
% The dataset array, |hospital|, contains variables measured on 100 sample
% patients. The variable |Weight| contains the weight of each patient. The
% variable |Sex| is a nominal variable containing the gender, |Male| or
% |Female|, for each patient. 
load hospital
getlevels(hospital.Sex) 

%%
% By default, the order of the nominal categories is in ascending alphabetical
% order of the labels.  

%% Plot data grouped by category level. 
% Draw box plots of weight, grouped by gender. 
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')    

%%
% The box plots appear in the same alphabetical order returned by |getlevels|.  

%% Change the category order. 
% Change the order of the category levels. 
hospital.Sex = reorderlevels(hospital.Sex,{'Male','Female'});
getlevels(hospital.Sex) 

%%
% The levels are in the newly specified order.  

%% Plot data in new order. 
% Draw box plots of weight by gender. 
figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')    

%%
% The order of the box plots corresponds to the new level order.