Merge Variables in Table

1 visualización (últimos 30 días)
Alexandra Kopaleyshvili
Alexandra Kopaleyshvili el 12 de Jun. de 2021
Editada: Alexandra Kopaleyshvili el 13 de Jun. de 2021
I would like to create a for loop which can merge variables dynamically by first letter, excluding the number standing behind the letter.
from this:
to this:
Thanks!

Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Jun. de 2021
names = YourTable.Properties.VariableNames;
initials = extractBefore(names, 2);
[G, id] = findgroups(initials);
newTable = table();
for K = 1 : length(id)
newTable.(id{K}) = [YourTable{:,G==K}];
end
  2 comentarios
Alexandra Kopaleyshvili
Alexandra Kopaleyshvili el 13 de Jun. de 2021
Hey Walter, thank you very much!
Is it possible to combine those multicolumn variables (like B or L) into single-column-variables (as shown in the second picture)?
Alexandra Kopaleyshvili
Alexandra Kopaleyshvili el 13 de Jun. de 2021
Editada: Alexandra Kopaleyshvili el 13 de Jun. de 2021
Ok i got it! I just needed to add this to your code:
for jj=1:width(newTable)
size(newTable.(jj))
if ans(1,2)> 1
alinear = {newTable.(jj){:}}'
{cat(1, alinear{:})}
newTable.(jj)=ans
end
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays 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!

Translated by