在 Matlab 中,如何从 table 中删除 na 行?
In Matlab, how do i drop na rows from a table?
在 Matlab 中,如何删除数据中所有 NA 或部分 NA 的行。
我有一个 table 列 date open high low close volume
该日期存在于所有行中。
有些行除了带有 NA 的日期之外还有所有其他列。
有些行的所有信息都正常,除了收盘价。
- 如何获得没有 "NA" 行的 table(除
date
之外的所有 NA
)?
- 如何获得仅包含
close
具有数据(数字)的行的 table?
- 我如何得到一个 table 只有
close
是非零数字的行。
- 相反,我如何获得一个 table,其中只有除了
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(这从来不是我的情况,因为日期 'index' 列始终有效...)
A(~any(~isnan(A), 2),:)=[];
如果我理解正确的话伪代码的意思是:
all in matrix A(hasno(numeric(A), INCOLUMNS), FORALLCOLUMNS) =? [];
这导致所有行的其中一列中至少有一个数字。
...但是对于 table 和仅检查数据字段是否有类似的东西?
如果您使用的是 Matlab R2016b
或更高版本,要删除缺少值的 table 行,您需要做的就是:
mytable = rmmissing(mytable);
请注意,这也适用于数组 official documentation:
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:
NaN - double, single, duration, and calendarDuration
NaT - datetime
'missing' - string
'undefined' - categorical
' ' - char
{''} - cell of character arrays
如果您使用的是早期版本,请选择:
mytable = mytable(~any(ismissing(mytable),2),:);
可以找到一个很好的多用途教程来阅读这个论点 here。
在 Matlab 中,如何删除数据中所有 NA 或部分 NA 的行。
我有一个 table 列 date open high low close volume
该日期存在于所有行中。
有些行除了带有 NA 的日期之外还有所有其他列。
有些行的所有信息都正常,除了收盘价。
- 如何获得没有 "NA" 行的 table(除
date
之外的所有NA
)? - 如何获得仅包含
close
具有数据(数字)的行的 table? - 我如何得到一个 table 只有
close
是非零数字的行。 - 相反,我如何获得一个 table,其中只有除了
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(这从来不是我的情况,因为日期 'index' 列始终有效...)
A(~any(~isnan(A), 2),:)=[];
如果我理解正确的话伪代码的意思是:
all in matrix A(hasno(numeric(A), INCOLUMNS), FORALLCOLUMNS) =? [];
这导致所有行的其中一列中至少有一个数字。
...但是对于 table 和仅检查数据字段是否有类似的东西?
如果您使用的是 Matlab R2016b
或更高版本,要删除缺少值的 table 行,您需要做的就是:
mytable = rmmissing(mytable);
请注意,这也适用于数组 official documentation:
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:
NaN - double, single, duration, and calendarDuration
NaT - datetime
'missing' - string
'undefined' - categorical
' ' - char
{''} - cell of character arrays
如果您使用的是早期版本,请选择:
mytable = mytable(~any(ismissing(mytable),2),:);
可以找到一个很好的多用途教程来阅读这个论点 here。