Merge Variables in Table

1 Ansicht (letzte 30 Tage)
Alexandra Kopaleyshvili
Alexandra Kopaleyshvili am 12 Jun. 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!

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 13 Jun. 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 Kommentare
Alexandra Kopaleyshvili
Alexandra Kopaleyshvili am 13 Jun. 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 am 13 Jun. 2021
Bearbeitet: Alexandra Kopaleyshvili am 13 Jun. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by