How to delete rows that contain NaN in a table

조회 수: 24 (최근 30일)
012786534
012786534 2017년 2월 3일
댓글: dpb 2017년 6월 12일
Hello all,
So how do you delete all the rows that contain NaNs in a table (not a matrix or a cell array)? I have tried various versions of
tableA(~any(~isnan(tableA), 2),:)=[];
but none work.
Thank you
  댓글 수: 1
Image Analyst
Image Analyst 2017년 2월 3일
Make it easy for us to help you by suppling code to generate a table with nans in it. Then I can try some things. And do any of your columns contain anything other than numbers? Like strings or something?

댓글을 달려면 로그인하십시오.

채택된 답변

dpb
dpb 2017년 2월 3일
편집: dpb 2017년 6월 12일
If the table uses default missing values for the various types (see documentation for the various types; NaN is for numeric) then
tableA=tableA(~any(ismissing(tableA),2),:);
should do the trick. This will eliminate other variables that are missing besides numeric, too, of course, leaving only a complete table.
  댓글 수: 2
sensation
sensation 2017년 6월 12일
Hi,
I have tried this but got an error: Error using any Not enough input arguments.
I have first column as string and second is numeric with nan values sometimes inside. I want to get riw of those rows with nans.
thank you
dpb
dpb 2017년 6월 12일
Missing parens... ismissing(tableA) returns 2D logical, need any applied to it in 2d dimension to return the rows with missing value, then keep the complement.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Peter Perkins
Peter Perkins 2017년 2월 6일
If you have access to R2016b, you can use rmmissing .

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by