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 A e B; 0 marca 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)
Saída
ans = 3×3 table

    K        V            W    
    _    _________    _________

    1    "x"          <missing>
    2    "y"          "p"      
    3    <missing>    "q"

Veja também

innerjoin join table ismember