Replace string values in a table
71 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
James Bishop
el 16 de Mzo. de 2022
Respondida: Eric Sofen
el 17 de Mzo. de 2022
I have a column in a table with 3 wine types defined as character values "1", "2" and "3". I want to replace these values with "French", "Spanish" and "Italian" respectively. I am treating the column as an array of strings and using the tried and trusted combination of a for loop and if/elseif ladder to select and replace each of the string values in the table. Howver, when I run this in the command window, I get an error saying 'Unable to perform assignment because the left and right sides have a different number of elements' . My code is listed below and the array I am trying run it on is attached.
for i = 1:size(Typ)
if((Typ(i))=="1")
Typ(i)="French"
elseif((Typ(i))=="2")
Typ(i)="Spanish"
elseif((Typ(i))=="3")
Typ(i)="Italian"
else
end
end
0 comentarios
Respuesta aceptada
Mathieu NOE
el 16 de Mzo. de 2022
hello
my 2 cents suggestion
Typ = readtable('Typ.csv');
Typ = table2array(Typ);
for i = 1:numel(Typ)
if((Typ(i))== 1)
newTyp{i,1}='French';
elseif((Typ(i))==2)
newTyp{i,1}='Spanish';
elseif((Typ(i))==3)
newTyp{i,1}='Italian';
else
end
end
Typ = newTyp;
0 comentarios
Más respuestas (2)
Eric Sofen
el 17 de Mzo. de 2022
This is what categorical is built for! When you create the categorical, you can specify the data, value set, and category names.
T = readtable("https://www.mathworks.com/matlabcentral/answers/uploaded_files/929319/Typ.csv");
T.Typ = categorical(T.V1, 1:3, ["French", "Spanish","Italian"])
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!