在Matlab中,如何从表中删除na行?

时间:2017-12-03 07:49:57

标签: matlab na matlab-table

在Matlab中,如何删除所有NA或数据中的某些NA的行。

我有一个包含date open high low close volume

的表格

日期存在于所有行中。

除了带NA的日期之外,有些行还包含所有其他列。

除了关闭之外,有些行的所有信息都可以。

  • 如何在没有" NA"行(除NA以外的所有date)?
  • 如何获取仅包含close包含数据(数字)的行的表?
  • 如何获取仅包含close非零数字的行的表。
  • 相反,除了close行有NA之外,我怎样才能得到一张只包含一切好的行的表?

我看到this in Matlab documentation表示矩阵:

>> X = [10; 0.04500; 0; NaN; NaN];
>>X(isnan(X)) = []
ans = [10; 0,04500, 0]

And this for all values being NAN(这不是我的情况,因为日期'索引'列始终有效...)

A(~any(~isnan(A), 2),:)=[];

如果我理解正确,则表示伪代码:

all in matrix A(hasno(numeric(A), INCOLUMNS), FORALLCOLUMNS) =? [];

这导致所有行在其中一列中至少包含一个数字。

...但是对于表格是否有类似的东西,只检查数据字段?

1 个答案:

答案 0 :(得分:2)

如果您正在使用+-+------------+------+------ id|test_case_id|passed|failed +-+------------+------+------ 1 | 1 | 2 | 0 +-+------------+------+------ 2 | 2 | 1 | 2 +-+------------+------+------ 或更高版本,那么为了删除缺少值的表行,您所要做的就是:

Matlab R2016b

并注意,这也适用于official documentation的数组:

  

R = rmmissing(A)从数组或表中删除丢失的条目。如果一个   是一个向量,然后rmmissing删除任何包含缺失的条目   数据。如果A是矩阵或表,则rmmissing将删除任何行   包含缺少的数据。缺少的值是根据   数据类型A:

     

NaN - double,single,duration和calendarDuration

     

NaT - 日期时间

     

'缺失' - 字符串

     

'undefined' - 分类

     

'' - char

     

{''} - 字符数组的单元格

如果您使用的是早期版本,请访问:

mytable = rmmissing(mytable);

可以找到一个很好的多用途教程来阅读这个论点here