outerjoin
Une duas tabelas mantendo as linhas sem correspondência.
Categoria: Language Fundamentals > Data Types
Sintaxe
C = outerjoin(A, B)
Une pelas variáveis comuns às duas tabelas, mantendo as linhas sem par de ambas.
C = outerjoin(A, B, 'Keys', keys)
Une pelas variáveis-chave indicadas.
C = outerjoin(___, 'Type', t)
t é 'full' (padrão), 'left' ou 'right'.
C = outerjoin(___, 'MergeKeys', true)
Mescla as colunas-chave de A e B em uma só.
[C, ia, ib] = outerjoin(___)
Também retorna os índices das linhas tomadas de A e B.
Descrição
Uma junção externa é a união dos pares com as sobras: toda linha do lado escolhido aparece uma vez, emparelhada com a linha correspondente da outra tabela se houver. Ao contrário de innerjoin, que descarta linhas sem par, outerjoin as preenche com valores ausentes.
Sem 'MergeKeys', as colunas-chave ficam separadas, com sufixos tirados dos nomes das tabelas de entrada, de modo que o resultado mostra as duas chaves lado a lado. As linhas saem ordenadas pela chave.
Argumentos de entrada
A, B- Tabelas ou timetables.
'Keys'- Nome(s) ou índices de variáveis usados para casar linhas.
'Type'- Quais linhas sem par manter.
'MergeKeys'- Se verdadeiro, uma única variável-chave guarda a chave da tabela que a tiver.
Argumentos de saída
C- Tabela unida. Quando uma linha não tem par, as variáveis da outra tabela recebem valores ausentes (
NaN,<missing>). ia, ib- Vetores coluna de índices de linha de
AeB;0marca linhas sem origem.
Exemplo
a = table([1;2], ["x";"y"], 'VariableNames', {'K','V'});
b = table([2;3], ["p";"q"], 'VariableNames', {'K','W'});
outerjoin(a, b, 'Keys', 'K', 'MergeKeys', true)
ans = 3×3 table
K V W
_ _________ _________
1 "x" <missing>
2 "y" "p"
3 <missing> "q"