Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

访问数据集数组变量中的数据

此示例说明如何使用数据集数组变量及其数据。

按名称访问变量。

您可以通过使用变量(列)名称和点索引来访问变量数据或选择变量子集。加载样本数据集数组。显示 hospital 中变量的名称。

load hospital 
hospital.Properties.VarNames(:)
ans = 7x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }

数据集数组有 7 个变量(列)和 100 个观测值(行)。您可以在工作区窗口中双击 hospital 以在变量编辑器中查看数据集数组。

绘制直方图。

绘制变量 Weight 中数据的直方图。

figure
histogram(hospital.Weight)

Figure contains an axes. The axes contains an object of type histogram.

直方图显示体重呈双峰分布。

绘制按类别分组的数据。

绘制按 Sex 中的值分组(男性和女性)的 Weight 的箱线图。也就是说,使用变量 Sex 作为分组变量。

figure
boxplot(hospital.Weight,hospital.Sex)

Figure contains an axes. The axes contains 14 objects of type line.

箱线图表明性别是体重呈双峰分布的原因。

选择一个变量子集。

创建一个新数据集数组,其中仅包含变量 LastNameSexWeight。您可以通过名称或列号访问变量。

ds1 = hospital(:,{'LastName','Sex','Weight'});
ds2 = hospital(:,[1,2,4]);

数据集数组 ds1ds2 是等同的。在对数据集数组进行索引时,使用括号 ( ) 可保留数据类型;也就是说,基于数据集数组的子集创建一个数据集数组。您还可以使用变量编辑器基于变量和观测值的子集创建一个新数据集数组。

转换变量数据类型。

将变量 Smoker 的数据类型从逻辑值转换为名义值,标签为 NoYes

hospital.Smoker = nominal(hospital.Smoker,{'No','Yes'});
class(hospital.Smoker)
ans = 
'nominal'

探查数据。

显示 Smoker 的前 10 个元素。

hospital.Smoker(1:10)
ans = 10x1 nominal
     Yes 
     No 
     No 
     No 
     No 
     No 
     Yes 
     No 
     No 
     No 

如果要更改名义数组中的水平标签,请使用 setlabels

添加变量。

变量 BloodPressure 是 100×2 数组。第一列对应于收缩压,第二列对应于舒张压。将此数组分成两个新变量 SysPressureDiaPressure

hospital.SysPressure = hospital.BloodPressure(:,1);
hospital.DiaPressure = hospital.BloodPressure(:,2);
hospital.Properties.VarNames(:)
ans = 9x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }
    {'SysPressure'  }
    {'DiaPressure'  }

数据集数组 hospital 有两个新变量。

按名称搜索变量。

使用 regexp 查找 hospital 中变量名称包含 'Pressure' 的变量。创建只包含这些变量的新数据集数组。

bp = regexp(hospital.Properties.VarNames,'Pressure');
bpIdx = cellfun(@isempty,bp);
bpData = hospital(:,~bpIdx);
bpData.Properties.VarNames(:)
ans = 3x1 cell
    {'BloodPressure'}
    {'SysPressure'  }
    {'DiaPressure'  }

新数据集数组 bpData 仅包含血压变量。

删除变量。

从数据集数组 hospital 中删除变量 BloodPressure

hospital.BloodPressure = [];
hospital.Properties.VarNames(:)
ans = 8x1 cell
    {'LastName'   }
    {'Sex'        }
    {'Age'        }
    {'Weight'     }
    {'Smoker'     }
    {'Trials'     }
    {'SysPressure'}
    {'DiaPressure'}

变量 BloodPressure 不再在数据集数组中。

另请参阅

相关示例

详细信息