В документации Matlab для outerjoin
сказано, что "метки строк" могут использоваться для Keys
.Это не обеспечивает синтаксис для этого.Мои попытки не увенчались успехом:
>> A=table([1;2],'VariableNames',{'Av1'},'RowNames',{'hot','dog'})
A =
Av1
___
hot 1
dog 2
>> B=table([3;4],'VariableNames',{'Bv1'},'RowNames',{'hot','dog'})
B =
Bv1
___
hot 3
dog 4
>> outerjoin(A,B)
Error using table/outerjoin (line 114)
Cannot find a common table variable to use as a key variable.
>> outerjoin(A,B,'Keys','RowNames')
Error using table/outerjoin (line 114)
Unrecognized variable name 'RowNames'.
Мне интересно, как интерпретировать документацию.Буду признателен за любую помощь.
AFTERNOTE
Кажется, что в документации отсутствует нечто большее, чем просто указать RowNames
для Keys
.Это также не описывает ключи по умолчанию.Судя по тестам, ключи по умолчанию - это столбцы с соответствующими именами:
A=array2table( [ 1 1 10; 1 2 20; 2 1 1; 2 2 20],...
'VariableNames',{'k1','k2','d'} )
B=array2table( [ 1 1 100; 1 2 200; 2 1 1; 2 2 200],...
'VariableNames',{'k1','k2','d'} )
outerjoin(A,B,'MergeKeys',true)
A =
k1 k2 d
__ __ __
1 1 10
1 2 20
2 1 1
2 2 20
B =
k1 k2 d
__ __ ___
1 1 100
1 2 200
2 1 1
2 2 200
ans =
k1 k2 d
__ __ ___
1 1 10
1 1 100
1 2 20
1 2 200
2 1 1
2 2 20
2 2 200
A=array2table( [ 1 1 10; 1 2 20; 2 1 1; 2 2 20],...
'VariableNames',{'k1','k2','d'} )
B=array2table( [ 1 1 100; 1 2 200; 2 1 1; 2 2 200],...
'VariableNames',{'k1','k2','e'} )
outerjoin(A,B,'MergeKeys',true)
A =
k1 k2 d
__ __ __
1 1 10
1 2 20
2 1 1
2 2 20
B =
k1 k2 e
__ __ ___
1 1 100
1 2 200
2 1 1
2 2 200
ans =
k1 k2 d e
__ __ __ ___
1 1 10 100
1 2 20 200
2 1 1 1
2 2 20 200