【发布时间】:2017-12-04 00:07:13
【问题描述】:
在 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) =? [];
这会导致所有行在其中一列中至少包含一个数字。
...但是对于表格和只检查数据字段有什么类似的吗?
【问题讨论】:
-
我要试试:
A(~all(~isnan(A(:,'open':)), 2),:)=[]; -
我认为答案在这个文档中:mathworks.com/help/matlab/matlab_prog/… 具体来说,这个函数可能会帮助解决第一个问题:mathworks.com/help/matlab/ref/rmmissing.html
-
感谢@RyanWarnick!这就是答案,正如接受的答案中详细写的那样
标签: matlab na matlab-table