readtable() custom variable names

I am using the below command to read a csv file into a table called T.
T = readtable("library.csv")
Now, the first row of the csv inludes the column headers, or variable names you can say. However, I want to change those variable names as I want. I have inspected readtable() documentation, but could not find the solution.
How can I do this?
Thanks.

 Accepted Answer

Ameer Hamza
Ameer Hamza on 4 Apr 2020
Edited: Ameer Hamza on 4 Apr 2020
One way is to change the variable names after reading the file like this.
t = readtable("library.csv");
t.Properties.VariableNames = {'name1', 'name2'}; % names of columns

6 Comments

Certain variable names can cause a nuissance warning that clutters the command window. To avoid this, readtable can be called with "VariableNamingRule","preserve" as detailed in the documentation. But can the variable names in the source data be ignored entirely so that this does not have to be done? Perhaps by calling with ReadVariableNames set to false and DataRange set to 2?
In my case readtable automatically generate column header as "VAR". If I do not want to generate that "VAR" what should I do?
"If I do not want to generate that "VAR" what should I do?"
Table columns/variables must have headers. If the header is not imported from a file, the default VAR* is used.
You can specify the header names when importing the file data, or replace them afterwards (see the above answer). What do you expect to see as the header names in your table?
Actually I'm converting.xls file to .CSV by using the command 'readtable'. Now in my actual dataset there was no header. But after converting using 'readtable' a default header is coming which is 'Var'. Now I don't want this to come. What should I do?
table() objects must have unique names for each variable. It is not possible to create a table() object which does not have variable names.
You can readtable() and pass VariableNames at the time of reading, thereby giving some name of your choice.
You can skip a header by using HeaderLines, 1 and ReadVariableNames, false
@Supriya Gain: use READCELL and WRITECELL instead.

Sign in to comment.

More Answers (1)

Steven Lord
Steven Lord on 18 May 2022
If you're using release R2020a or later I would use the renamevars function.

Community Treasure Hunt

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

Start Hunting!