同じ変数名をもつテー​ブル配列同士を横方向​に結合するにはどうす​ればいいですか?

13 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 28 Jan. 2021
2つのテーブル配列があり、それぞれ、同じ変数名の列が含まれています。
この状態で、横方向に結合しようとすると、以下のエラーが発生します。
>> T = [T1,T2]
table 変数名が重複しています: 'x1'。
重複する変数名は、一方を削除するか、変数名を変更するなどで対応したいのですが、方法を教えてください。

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 28 Jan. 2021
Bearbeitet: MathWorks Support Team am 28 Jan. 2021
同じ変数名の保持する値が同一であれば、join 関数を使用することが可能です。
>> T = join(T1,T2);
T =
5×3 table
x1 x2 x3
_________ ________ ________
0.10665 0.86869 0.86869
0.9619 0.084436 0.084436
0.0046342 0.39978 0.39978
0.77491 0.25987 0.25987
0.8173 0.80007 0.80007
同じ変数名でも、保持する値が異なる場合、
  1. 同一の変数名を検知し、変数名を変更する
  2. キーとなる共通の変数を作成して innerjoin 関数で結合する
などの方法が考えられます。
1. 同一の変数名を検知し、変数名を変更する
T1 = array2table(rand(5,2),'VariableNames',{'x1','x2'});
T2 = array2table(rand(5,2),'VariableNames',{'x1','x3'});
% 同じ変数名があるか、検出
ind = contains(T2.Properties.VariableNames,T1.Properties.VariableNames);
T2.Properties.VariableNames{ind} = [T2.Properties.VariableNames{ind},'_T2']; % 変数名を変更
T_all = [T1,T2]; % 結合
>> T_all
T_all =
5×4 table
x1 x2 x1_T2 x3
________ ________ ________ ________
0.075854 0.12991 0.45054 0.82582
0.05395 0.56882 0.083821 0.53834
0.5308 0.46939 0.22898 0.99613
0.77917 0.011902 0.91334 0.078176
0.93401 0.33712 0.15238 0.44268
2. キーとなる共通の変数を作成して innerjoin 関数で結合する
T1 = array2table(rand(5,2),'VariableNames',{'x1','x2'});
T2 = array2table(rand(5,2),'VariableNames',{'x1','x3'});
% Key となる変数の追加
T1.Key = (1:height(T1))';
T2.Key = (1:height(T2))';
T_all = innerjoin(T1,T2,'Keys','Key') % 結合
T_all.Key = [] % Key変数の削除
>> T_all
T_all =
  5×4 table
      x1_T1         x2       x1_T2         x3   
    ________    ________    ________    ________
    0.075854     0.12991     0.45054     0.82582
     0.05395     0.56882    0.083821     0.53834
      0.5308     0.46939     0.22898     0.99613
     0.77917    0.011902     0.91334    0.078176
     0.93401     0.33712     0.15238     0.44268

Weitere Antworten (0)

Kategorien

Mehr zu 日付と時刻 finden Sie in Help Center und File Exchange

Produkte


Version

R2019a

Community Treasure Hunt

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

Start Hunting!