Change table variable data type
Mostrar comentarios más antiguos
I used readtable() to read a text file into a table. One of the columns of the table was read (by default) as a double rather than a string. How does one change a columns datatype within a table?
Respuesta aceptada
Más respuestas (2)
Jeffrey Daniels
el 4 de Jun. de 2020
6 votos
fileName = table.xlsx;
opts = detectImportOptions(fileName);
opts.VariableTypes{15} = 'char'; % This will change column 15 from 'double' or whatever it is to 'char', which is what you want.
new_table = readtable(fileName,opts);
1 comentario
yunyu Hu
el 5 de Nov. de 2020
This is a simple and clean solution.
Peter Perkins
el 7 de Jul. de 2017
0 votos
readtable also accepts a Format parameter that would allow you to override the automatic type detection.
4 comentarios
Nikhil Tawakley
el 15 de Ag. de 2017
Peter Perkins
el 16 de Ag. de 2017
I don't know what this means. Tables don't have formats.
Nikhil Tawakley
el 29 de Ag. de 2017
Walter Roberson
el 29 de Ag. de 2017
No, it is not possible to copy-paste datatypes. However, you could use
old_class = arrayfun(@class, OldTable.VariableName, 'Uniform', 0);
new_variable = arrayfun(@(value, newclass) cast(value, newclass), NewTable.VariableName, old_class, 'uniform', 0);
NewTable.VariableName = new_variable;
This assumes that each entry in the variable is a potentially different type -- which would not be the case for numeric entries for example. If you have numeric entries, then
NewTable.VariableName = cast( NewTable.VariableName, class(OldTable.VariableName) );
Categorías
Más información sobre Tables en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!