在Matlab中,如何删除所有NA或数据中的某些NA的行。
我有一个包含date open high low close volume
列
日期存在于所有行中。
除了带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) =? [];
这导致所有行在其中一列中至少包含一个数字。
...但是对于表格是否有类似的东西,只检查数据字段?
答案 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。