Outerjoin не сливается, как ожидалось, мои спецификации неверны? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь объединить три таблицы, используя outerjoin(), но не получаю желаемый / ожидаемый результат. Ниже приведен код, который я использую, полученный результат и желаемый результат. Использование Matlab R2018a.

Код

%%% set up dummy data tables
Key1 = [1 1 1 2 2 3 3 3 3 3];
Key2 = [1 2 3 1 2 1 2 3 4 5];
Val1 = [0 NaN NaN 0 NaN 0.09 NaN NaN NaN NaN];
Val2 = [NaN 0.55 0.55 0.04 0.04 0.58 0.634 0.668 0.6950 0.7560];
mytable = array2table([Key1', Key2', Val1', Val2']);
mytable.Properties.VariableNames = {'Key1', 'Key2', 'Val1', 'Val2'};

temp1 = array2table([1 4 0; 2 3 0; 3 6 0.09]);
temp1.Properties.VariableNames = {'Key1', 'Key2', 'Val1'};

temp2 = array2table([1 4 0.55; 2 3 0.04; 3 6 0.07560]);
temp2.Properties.VariableNames = {'Key1', 'Key2', 'Val2'};

%%% try to join mytable, temp1, and temp2 together
Tout = outerjoin(mytable, temp1, 'MergeKeys', true);
Tout = outerjoin(Tout, temp2, 'MergeKeys', true);

Результат из кода
Я хочу объединить строки подсветки, чтобы Пара Key1-Key2 не дублируется в выходной таблице. Я пробовал различные комбинации ...'MergeKeys', true, 'LeftVariables', {'Key1', 'Key2', 'Val1', 'Val2'}, 'RightVariables', {'Key1', 'Key2', 'Val2'} et c. но я не мог заставить его работать.

Current Result

Желаемый результат

Desired Result

1 Ответ

0 голосов
/ 07 апреля 2020

Решено путем изменения порядка:

Tout = outerjoin(temp1, temp2, 'MergeKeys',true);
Tout = outerjoin(mytable, Tout, 'MergeKeys',true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...