Reorder table variables / columns
Show older comments
I've created a table from a large csv file using the readtable function. I want to reorder the variables / columns in this table.
For example.
My table's name is CUTable
It has a variable CUTable.Date which is the date the data was taken It is currently column 20 in the table. I want to make it column 2 and shift existing columns 2-19 to 3-20.
It seems there should be a very easy command to do this which I'm missing, but I can't seem to find it anywhere in the help or these forums. I could, but don't want to "brute force" it (e.g. create a new table, and one-by-one copy the variables from the exiting table to the new table in the order I want, then delete the old table) if avoidable.
How can I accomplish this?
Accepted Answer
More Answers (2)
Eric Sofen
on 28 Mar 2018
9 votes
In R2018a, check out the new movevars function for rearranging variables in tables. It's part of a set of new functions for manipulating table variables:
1 Comment
xingxingcui
on 17 Nov 2023
add topic link:
Ben Oeveren
on 21 Feb 2018
Edited: Ben Oeveren
on 21 Feb 2018
Or you can use:
oldvariables = T.Properties.VariableNames;
newvariables = {'date','Title','Website'};
[~,LOCB] = ismember(oldvariables,newvariables);
newTable = T(:,LOCB);
1 Comment
Justin Elstrott
on 13 Jan 2021
Hi Ben,
I like this solution, but there's a typo in the third line. I believe it should read as:
oldvariables = T.Properties.VariableNames;
newvariables = {'date','Title','Website'};
[~,LOCB] = ismember(newvariables,oldvariables);
newTable = T(:,LOCB);
Categories
Find more on Data Type Identification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!