How do I specify a variable from a table that uses words and not numerical values

3 次查看(过去 30 天)
I'm trying to use an if statement to equate to 'Na'. I'm not sure how I would write the variables out. Such as 'orange peel', 'NA', 'wrapper', etc.

采纳的回答

Campion Loong
Campion Loong 2021-4-14
编辑:Campion Loong 2021-4-15
I would use a categorical for trashTags.
trash = readtable('Litterati_processed_data.csv');
trash.Tags = categorical(trash.Tags);
Alternatively, it's more memory efficient to directly read the Tags in as categorical (i.e. rather than converting after import). Use ImportOptions and the corresponding detectImportOptions:
% I am guessing your file layout here. Tinker to suit your needs
opts = detectImportOptions('Litterati_processed_data.csv', 'Delimiter', ',');
opts = setvartype(opts,'Tags','categorical'); % directly read "Var1" in as categorical
If your 'NA' actually means 'not applicable', you can read that in as missing value too:
opts = setvaropts(opts, 'Tags', 'TreatAsMissing', 'NA');
Now just read it in with your configured options:
trash = readtable('Litterati_processed_data.csv', opts);
% Just count the number of "NA"
n = nnz(t.Tags == 'NA')
% Or if you had treated "NA" as missing at import
n = nnz(ismissing(t.Tags))

更多回答(1 个)

Geoff Hayes
Geoff Hayes 2021-4-14
Elias - try using strcmp or the case-insensitive strcmpi.

类别

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