Effacer les filtres
Effacer les filtres

error using readtable with "opts" and "TreatAsEmpty" together

3 vues (au cours des 30 derniers jours)
lp2015
lp2015 le 28 Mar 2018
Hi, I am trying to import an xlsx file to a table using the following command:
trial_table = readtable(xlsx_file_path, opts, 'TreatAsEmpty',{'.','NA'});
However, I get the following error:
Error using matlab.io.spreadsheet.SpreadsheetImportOptions/readtable (line 339)
'TreatAsEmpty' is not a recognized parameter. For a list of valid name-value pair arguments, see the documentation for readtable.
I read the documentation, and as far as I understand, 'TreatAsEmpty' should be a recognized name-value pair argument. In fact, when I used only the 'TreatAsEmpty' or the 'opts' input alone, the function worked!
trial_table = readtable(xlsx_file_path, 'TreatAsEmpty',{'.','NA'}); #this works
trial_table = readtable(xlsx_file_path, opts); #this works
trial_table = readtable(xlsx_file_path, opts, 'TreatAsEmpty',{'.','NA'}); #this does not work
trial_table = readtable(xlsx_file_path, 'TreatAsEmpty',{'.','NA'}, opts);#this does not work
From the readtable documentation page I understand that I am using a valid input:
Any ideas why this is not working? Thanks
  2 commentaires
Star Strider
Star Strider le 28 Mar 2018
How did you define ‘opts’?
lp2015
lp2015 le 28 Mar 2018
opts = detectImportOptions(xlsx_file_path);
% set catgegorical variables
cat_vars = {'Rat_Name','student_Name', 'Rat_Decison'};
member_cat_var = ismember(cat_vars, opts.VariableNames);
cat_vars = cat_vars(member_cat_var);
opts = setvartype(opts, cat_vars, 'categorical');
% set logical variables
lgc_vars = {'AutoFixation','AutoReward', 'AutoRewardSound', 'AutoStart', 'FixationOnly', 'skip_Analyze', 'stable_fixation', 'succsessfullTrial', 'SecondChoice', 'ErrorChoiceSoundOn', 'RewardSound', 'EnableClueSoundInBothSide', 'EnableClueSoundInCorrectSide','EnableRightLeftMustEquals' };
member_lgc_vars = ismember(lgc_vars, opts.VariableNames);
lgc_vars = lgc_vars(member_lgc_vars);
opts = setvartype(opts, lgc_vars, 'logical');

Connectez-vous pour commenter.

Réponse acceptée

Jeremy Hughes
Jeremy Hughes le 28 Mar 2018
Hi,
Only a subset of the parameters in READTABLE are allowed with the options. Part of the reason is that, in the import options, you can set TreatAs_Missing_ per-variable.
opts = setvaropts(opts, _yourVars_, 'TreatAsMissing',{'.','NA'});
Hope this helps
Jeremy

Plus de réponses (0)

Catégories

En savoir plus sur Data Import from MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by