splitapply

Aplica uma função a cada grupo de dados e reúne os resultados.

Categoria: Language Fundamentals > Data Types

Sintaxe

Y = splitapply(func, X, G)

Divide X pelos números de grupo em G, chama func em cada grupo e empilha os resultados.

[Y1, Y2, ...] = splitapply(func, X, G)

Para uma função que retorna várias saídas.

Descrição

splitapply é a segunda metade de um passo dividir-aplicar-combinar: findgroups atribui um inteiro a cada chave distinta, e splitapply executa a função nos dados de cada grupo. Espera-se que a função retorne o mesmo tamanho para todos os grupos, em geral um escalar como sum, mean ou numel.

Argumentos de entrada

func
Function handle aplicado a cada grupo.
X
Array de dados, ou vários arrays X1, X2, ... se func receber várias entradas. Os grupos são tomados ao longo das linhas.
G
Inteiros positivos que dão o grupo de cada linha, em geral vindos de findgroups.

Argumentos de saída

Y
Uma linha por grupo, na ordem dos grupos.

Exemplo

[g, id] = findgroups(["b";"a";"b"]);
id
splitapply(@sum, [10;20;30], g)
[m, i] = splitapply(@max, [3;9;4;1], [1;1;2;2])
Saída
id = 2×1 string array

    "a"
    "b"
ans = 2×1

    20
    40
m = 2×1

     9
     4
i = 2×1

     2
     1

Veja também

findgroups groupsummary rowfun varfun accumarray unique