Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

rmmissing

Remove missing entries

Syntax

Description

example

R = rmmissing(A) removes missing entries from an array or table. If A is a vector, then rmmissing removes any entry that contains missing data. If A is a matrix or table, then rmmissing removes any row that contains missing data. Missing values are defined according to the data type of A:

  • NaNdouble, single, duration, and calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''}cell of character arrays

example

R = rmmissing(A,dim) specifies the dimension of A to operate along. By default, rmmissing operates along the first dimension whose size does not equal 1.

example

R = rmmissing(___,Name,Value) specifies additional parameters for removing missing entries using one or more name-value pair arguments. For example, you can use rmmissing('MinNumMissing',n) to remove rows that contain at least n missing values.

example

[R,TF] = rmmissing(___) also returns a logical vector corresponding to the rows or columns of A that were removed.

Examples

collapse all

Create a vector with NaN values and remove each NaN.

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

     1     3     6

Remove incomplete rows from a table with multiple data types.

First, create a table whose variables include categorical, double, and char data types.

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

      Gender       Age    State     ID 
    ___________    ___    _____    ____

    <undefined>     45    ''       6051
    F               32    'CA'     7234
    M              NaN    'MA'      NaN

Remove any row of the table that contains missing data.

R = rmmissing(A)
R = 

    Gender    Age    State     ID 
    ______    ___    _____    ____

    F         32     'CA'     7234

Only remove rows with missing values in the Age or ID table variables.

R = rmmissing(A,'DataVariables',{'Age','ID'})
R = 

      Gender       Age    State     ID 
    ___________    ___    _____    ____

    <undefined>    45     ''       6051
    F              32     'CA'     7234

Alternatively, use the isnumeric function to identify the numeric variables to operate on.

R = rmmissing(A,'DataVariables',@isnumeric)
R = 

      Gender       Age    State     ID 
    ___________    ___    _____    ____

    <undefined>    45     ''       6051
    F              32     'CA'     7234

Create a matrix with missing data and remove any column (second dimension) containing two or more missing values. Return the new matrix and the logical row vector that indicates which columns of A were removed.

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 =

   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 =

   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 =

  1×10 logical array

   1   0   0   0   0   0   0   0   1   0

Input Arguments

collapse all

Input data, specified as a vector, matrix, table, or timetable. If A is a timetable, then rmmissing(A) removes any row of A containing missing data and also removes the corresponding time vector element. If the time vector contains a NaT or NaN, then rmmissing(A) removes it from the time vector and also removes the corresponding row of A.

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

Dimension to operate along, specified as 1 or 2. By default, rmmissing operates along the first dimension whose size does not equal 1.

Consider a two-dimensional input array A.

  • If dim=1, then rmmissing removes rows of A.

  • If dim=2, then rmmissing removes columns of A.

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: rmmissing(A,'DataVariables',{'Temperature','Altitude'}) removes rows of A that contain missing data in the Temperature or Altitude variables

collapse all

Minimum number of missing entries required to remove a row or column, specified as the comma-separated pair consisting of 'MinNumMissing' and a non-negative scalar, which is 1 by default.

Example: 'MinNumMissing',6

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Table variables, specified as the comma-separated pair consisting of 'DataVariables' and a variable name, a cell array of variable names, a numeric vector, a logical vector, or a function handle. When operating on the rows of A, rmmissing removes any row that has missing data in the column corresponding to the variables specified. When operating on the columns of A, rmmissing removes the specified variables from the table. The value for 'DataVariables' can be one of the following:

  • A character vector specifying a single table variable name

  • A cell array of character vectors where each element is a table variable name

  • A vector of table variable indices

  • A logical vector whose elements each correspond to a table variable, where true includes the corresponding variable and false excludes it

  • A function handle that returns a logical scalar, such as @isnumeric

Example: 'Age'

Example: {'Height','Weight'}

Example: @iscategorical

Data Types: char | cell | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | function_handle

Output Arguments

collapse all

Data with missing entries removed, returned as a vector, matrix, table, or timetable. The size of R depends on the number of removed rows or columns.

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

Removed entry indicator, returned as a logical vector. The value 1 (true) corresponds to rows or columns in R that were removed. The value 0 (false) corresponds to unchanged rows and columns. The orientation and size of TF depends on A and the dimension of operation.

Data Types: logical

Introduced in R2016b

Was this topic helpful?