Filter a table by 2 columns
이전 댓글 표시
Hi, I'm using 'patients' (load patients) to learn more about tables. I'm trying to filter the table by gender and smoker status by following
load patients
T = table(LastName,Age,Smoker,Gender)
Tsmokermale=(T.Smoker==true| T.Gender=='Male');
but get the error
Undefined operator '==' for input arguments of type 'cell'.
How can I filter the table by male and smoker, and still keep the information of LastName and Age?
답변 (2개)
Peter Perkins
2019년 3월 11일
Orongo, do this:
T.Gender = categorical(T.Gender);
Then this
Tsmokermale=(T.Smoker==true| T.Gender=='Male');
works as you expect, and what you are really asking about is this
T(Tsmokermale,:)
Long story short: Gender in the mat file is what's called a cell array of char vectors (a.k.a. a "cellstr"). Those don't support testing using ==, thus KSSV's suggestion of strcmp. But if you convert them to categorical, you can use ==. You could also convert to string, but categorical is more appropriate in this case.
댓글 수: 1
Ishwor Koirala
2022년 12월 21일
That worked for me. Thank you very much :)
KSSV
2019년 2월 19일
idx = strcmp(T.Gender,'Male') ;
댓글 수: 1
Orongo
2019년 2월 27일
편집: madhan ravi
2019년 2월 27일
카테고리
도움말 센터 및 File Exchange에서 Tables에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!