主要内容

数据集

类:数据集

(不推荐)构造数据集数组

数据集不推荐选择数据类型。要处理异构数据,请使用MATLAB®表格而是数据类型。看到MATLAB表格文档获取更多信息。

语法

A = dataset(varspec,'ParamName”,价值
A = dataset('文件',文件名,'ParamName”,价值
A = dataset('XLSFile',文件名,'ParamName”,价值
A = dataset('XPTFile',xptfilename,'ParamName”,价值

描述

A = dataset(varspec,'ParamName”,价值创建数据集数组一个使用工作区变量输入方法varspec和一个或多个可选的名称/值对(参见参数名称/值对)。

输入法varspec可以是以下一个或多个:

  • VAR—工作空间变量。数据集中的变量名称使用工作区名称一个.若要包含多个变量,请指定VAR_1VAR_2、……VAR_N.变量可以是任意大小的数组,但所有变量的行数必须相同。VAR也可以是表达式。在这种情况下,数据集自动创建默认名称。

  • VAR的名字} -一个工作区变量,VAR还有一个变量名,的名字数据集使用的名字作为变量名。要包含多个变量和名称,请指定{VAR_1name_1}, {VAR_2name_2},……, {VAR_Nname_N}。

  • VARname_1...name_m} - an-列工作空间变量,VAR数据集使用名称name_1...name_m变量名。中的每一列都必须包含名称VAR.中的每一列都成为单独的变量一个

您可以组合这些输入方法来包含所需的任意数量的变量和名称。名称必须是有效的、唯一的MATLAB标识符。有关输入组合的示例,请参见示例。有关可选的名称/值对,请参阅输入。

要将数字数组、单元格数组、结构数组或表转换为数据集数组,还可以使用(分别):

请注意

数据集数组可以包含内置类型或数组对象作为变量。数组对象必须实现以下每一个:

  • 标准的MATLAB圆括号索引的形式var(我…),在那里数值向量还是逻辑向量对应于变量的行

  • 一个大小方法。昏暗的论点

  • 一个vertcat方法

A = dataset('文件',文件名,'ParamName”,价值创建数据集数组一个属性指定的文本文件中的面向列数据文件名.变量一个类型如果在列标题后面的文件对应列中的数据完全是数字;否则变量一个是字符向量的单元格数组。数据集将空字段转换为任意一个(用于数值变量)或空字符向量(用于字符值变量)。数据集忽略文件中无关紧要的空白。不能同时指定文件变量和工作空间变量作为输入。有关更多信息,请参阅名称/值对。

A = dataset('XLSFile',文件名,'ParamName”,价值创建数据集数组一个从Excel中面向列的数据®指定的电子表格文件名.变量一个类型如果在电子表格的相应列中,列标题后面的数据完全是数字;否则变量一个是字符向量的单元格数组。有关更多信息,请参阅名称/值对。

A = dataset('XPTFile',xptfilename,'ParamName”,价值从SAS创建数据集数组®XPORT格式文件。XPORT格式文件中的变量名被保留。XPORT格式文件中的数字数据类型将被保留,但所有其他数据类型将被转换为字符向量的单元格数组。XPORT格式允许28种缺失的数据类型。数据集在文件中用大写字母表示这些,“。”“_”数据集将所有缺失的数据转换为一个.有关更多信息,请参阅名称/值对。

参数名称/值对

在构造数据集时指定一个或多个以下名称/值对:

VarNames

字符串数组或单元格数组{name_1,…,name_m}命名的变量一个使用指定的变量名。名称必须是有效的、唯一的MATLAB标识符。名称的数量必须等于中变量的数量一个.您不能使用VarNames参数,如果为单个变量提供名称使用{VAR,名称}对。指定VarNames当使用文件作为输入时,设置ReadVarNames

ObsNames

字符串数组或单元格数组{name_1,…,name_n}命名的n观察一个使用指定的观察名称。这些名称不必是有效的MATLAB标识符,但必须是惟一的。名称的数量必须等于中的观察数(行)一个.指定ObsNames当使用文件作为输入时,设置ReadObsNames

使用文本文件作为输入时可用的名称/值对:

分隔符

字符向量或字符串标量,指示文件中分隔列的字符。值是

  • ' \ t '(选项卡,默认为no格式指定)

  • ' '(空格,默认为a格式指定)

  • ”、“(逗号)

  • “;”(分号)

  • “|”(酒吧)

格式

格式字符向量或字符串标量,由textscan数据集使用textscan中创建变量一个根据格式中的字符向量或字符串标量中的转换说明符。您还可以提供被接受的任何名称/值对textscan.使用格式参数对于大文件来说要快得多。如果ReadObsNames真正的,然后格式应包括文件第一列的格式说明符。

HeaderLines

数值,指示在文件开头要跳过的行数。

默认值:0

TreatAsEmpty

指定在数值列中作为空字符向量处理的字符。值可以是字符数组、字符串数组或字符向量的单元格数组。该参数仅应用于文件中的数字列;数据集不接受数字字面值,如“-99”

使用文本文件或Excel电子表格作为输入时可用的名称/值对:

ReadVarNames

一个逻辑值,指示是否(真正的)或否()从文件的第一行读取变量名。默认为真正的.如果ReadVarNames真正的,文件或范围(如果使用Excel电子表格)列标题中的变量名不能为空。

ReadObsNames

一个逻辑值,指示是否(真正的)或否()从文件或范围的第一列(如果使用Excel电子表格)读取观测值名称。默认为.如果ReadObsNames而且ReadVarNames都是真正的数据集将文件或范围中第一列的标题保存为中第一个维度的名称A.Properties.DimNames

当从XPT材料格式文件,即ReadObsNames参数名/值对决定是否尝试使用文件中的第一个变量作为观察名。指定为逻辑值(默认值)).如果第一个变量的内容不是有效的观察名称,那么数据集将变量读入数据集数组的变量中,并且不设置观察值名称。

使用Excel电子表格作为输入时可用的名称/值对:

类型的正标量值指示工作表号或引用的工作表名。

范围

该形式的字符向量或字符串标量“C1, C2”在哪里C1而且C2矩形区域相对角上的单元格名称是否要读取xlsread.默认情况下,矩形区域扩展到包含数据的最右边的列。如果电子表格在数据列之间包含空列,或者电子表格包含数字或其他非表格信息,请指定仅包含数据的范围。

例子

从工作区变量创建一个数据集数组,包括观察名称:

卡路里,蛋白质,脂肪,钠,纤维,碳水化合物,…糖类,'ObsNames',名称)谷物。属性。vardescription =变量(4:10,2);

从一个单一的、多列的工作区变量创建一个数据集数组,为每一列指定变量名:

加载城市类别= cellstr(类别);城市= dataset({评级,类别{:}},…ObsNames, cellstr(名字))

从文本或电子表格文件加载数据

patients = dataset('File','hospital.dat',…'Delimiter',',','ReadObsNames',true) patients2 = dataset('XLSFile','hospital.xls',…“ReadObsNames”,真的)
  1. 从CSV文件加载患者数据hospital.dat并将信息存储在数据集由数据的第一列给出观察名称的数组(患者识别):

    Patients = dataset('file','hospital.dat',…“格式”、“% s % s % s % % % f % f % % % f % f % f ',…“分隔符”、“,”、“ReadObsNames”,真正的);

    也可以在不指定格式的情况下加载数据。数据集会自动创建数据集变量是字符向量的数组或单元格数组,取决于文件的内容:

    Patients = dataset('file','hospital.dat',…“分隔符”、“,”,…“ReadObsNames”,真正的);

  2. 创建值为{0,1}的变量标称,并将标签更改为“不”而且“是的”

    病人。烟= nominal(patients.smoke,{'No','Yes'});
  3. 添加新级别到作为更详细的吸烟者历史的占位符:

    病人。烟= addlevels(patients.smoke,... {'0-5 Years','5-10 Years','LongTerm'});
  4. 假设不吸烟者从不吸烟,重新贴上标签“不”水平:

    病人。烟= setlabels(patients.smoke,'Never','No');
  5. 放弃未分化“是的”级别从

    病人。烟= droplevels(patients.smoke,'Yes');

    注意,吸烟者现在有一个未定义的水平。

  6. 根据观察名称,将每个吸烟者设置为一个新的水平:

    patients.smoke('YPL-320') = '5-10年';

版本历史

在R2007a中引入