本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

rmmissing

删除缺失的条目

说明

示例

R = rmmissing(A) 从数组或表中删除缺失的条目。如果 A 是向量,则 rmmissing 会删除包含缺失数据的所有条目。如果 A 是矩阵或表,则 rmmissing 会删除包含缺失数据的所有行。缺失值的定义取决于 A 的数据类型:

  • NaN - doublesingledurationcalendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''} - 字符数组的 cell

示例

R = rmmissing(A,dim) 指定要沿其进行运算的 A 的维度。默认情况下,rmmissing 沿其大小不为 1 的第一个维度进行运算。

示例

R = rmmissing(___,Name,Value) 使用一个或多个名称-值对组参数指定用来删除缺失条目的其他参数。例如,您可以使用 rmmissing(A,'MinNumMissing',n) 删除 A 的包含至少 n 个缺失值的行。

示例

[R,TF] = rmmissing(___) 还返回与 A 中被删除的行或列对应的逻辑向量。

示例

全部折叠

创建包含 NaN 值的向量,然后删除每个 NaN

A = [1 3 NaN 6 NaN];
R = rmmissing(A)
R = 1×3

     1     3     6

从具有多个数据类型的表中删除不完整的行。

首先创建一个表,其变量包括 categoricaldoublechar 数据类型。

A = table(categorical({'';'F';'M'}),[45;32;NaN],{'';'CA';'MA'},[6051;7234;NaN],...
    'VariableNames',{'Gender' 'Age' 'State' 'ID'})
A=3×4 table
      Gender       Age      State        ID 
    ___________    ___    __________    ____

    <undefined>     45    {0x0 char}    6051
    F               32    {'CA'    }    7234
    M              NaN    {'MA'    }     NaN

删除表中包含缺失数据的任何行。

R = rmmissing(A)
R=1×4 table
    Gender    Age    State      ID 
    ______    ___    ______    ____

      F       32     {'CA'}    7234

只删除在 AgeID 表变量中包含缺失值的行。

R = rmmissing(A,'DataVariables',{'Age','ID'})
R=2×4 table
      Gender       Age      State        ID 
    ___________    ___    __________    ____

    <undefined>    45     {0x0 char}    6051
    F              32     {'CA'    }    7234

或者,使用 isnumeric 函数识别要对其执行运算的数字变量。

R = rmmissing(A,'DataVariables',@isnumeric)
R=2×4 table
      Gender       Age      State        ID 
    ___________    ___    __________    ____

    <undefined>    45     {0x0 char}    6051
    F              32     {'CA'    }    7234

创建一个包含缺失数据的矩阵,然后删除包含两个或更多缺失值的任何列(第二个维度)。返回新矩阵以及指示 A 的哪些列已被删除的逻辑行向量。

A = [NaN NaN 5 3 NaN 5 7 NaN 9 2;
     8 9 NaN 1 4 5 6 5 NaN 5;
     NaN 4 9 8 7 2 4 1 NaN 3]
A = 3×10

   NaN   NaN     5     3   NaN     5     7   NaN     9     2
     8     9   NaN     1     4     5     6     5   NaN     5
   NaN     4     9     8     7     2     4     1   NaN     3

[R,TF] = rmmissing(A,2,'MinNumMissing',2)
R = 3×8

   NaN     5     3   NaN     5     7   NaN     2
     9   NaN     1     4     5     6     5     5
     4     9     8     7     2     4     1     3

TF = 1x10 logical array

   1   0   0   0   0   0   0   0   1   0

输入参数

全部折叠

输入数据,指定为向量、矩阵、表或时间表。如果 Atimetable,则 rmmissing(A) 会删除 A 中包含缺失数据的所有行,还会删除对应的时间向量元素。如果时间向量包含 NaTNaN,则 rmmissing(A) 会从时间向量中删除它,还会删除 A 的对应行。

数据类型:double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

沿其进行运算的维度,指定 1 或 2。默认情况下,rmmissing 沿其大小不为 1 的第一个维度进行运算。

以一个二维输入数组 A 为例。

  • 如果 dim=1,则 rmmissing 会删除 A 的行。

  • 如果 dim=2,则 rmmissing 会删除 A 的列。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: rmmissing(A,'DataVariables',{'Temperature','Altitude'}) 会删除 A 中在 TemperatureAltitude 变量中包含缺失数据的行

要删除行或列所必须具有的最小缺失条目数,指定为逗号分隔的对组,其中包含 'MinNumMissing' 和一个非负标量(默认值为 1)。

示例: 'MinNumMissing',6

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

表变量,指定为逗号分隔的对组,包含 'DataVariables' 和变量名称、变量名称元胞数组、数值向量、逻辑向量、函数句柄或表 vartype 下标。对 A 的行执行运算时,rmmissing 将删除在与指定的变量对应的列中包含缺失数据的所有行。对 A 的列执行运算时,rmmissing 将从表中删除指定的变量。'DataVariables' 的值可以为下列值之一:

  • 指定单个表变量名称的字符向量

  • 字符向量元胞数组,其中每个元素都是表变量名称

  • 表变量索引向量

  • 逻辑向量,每个元素分别对应一个表变量,其中 true 指示包括对应变量,false 指示不包括对应变量。

  • 返回逻辑标量的函数句柄,例如 @isnumeric

  • vartype 下标

示例: 'Age'

示例: {'Height','Weight'}

示例: @iscategorical

示例: vartype('numeric')

输出参数

全部折叠

已删除缺失条目的数据,以向量、矩阵、表或时间表的形式返回。R 的大小取决于删除的行数或列数。

数据类型:double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

已删除条目的指示符,以逻辑向量的形式返回。值 1 (true) 对应于 R 中已删除的行或列。值 0 (false) 对应于未改变的行和列。TF 的方向和大小取决于 A 和操作的维度。

数据类型: logical

扩展功能

在 R2016b 中推出