groupfilter

Mantém apenas as linhas dos grupos que satisfazem uma condição.

Categoria: Language Fundamentals > Data Types

Sintaxe

B = groupfilter(T, groupvars, fun)

Aplica fun aos dados de cada grupo e mantém os grupos para os quais retorna verdadeiro.

B = groupfilter(T, groupvars, fun, datavars)

Passa a fun apenas as variáveis de dados indicadas.

Descrição

É um filtro no nível do grupo. Por exemplo, groupfilter(T, 'g', @(x) numel(x) > 1, 'v') descarta todo grupo com uma única linha. O teste enxerga o grupo inteiro de uma vez, o que o distingue da indexação lógica em linhas isoladas.

Argumentos de entrada

T
Tabela.
groupvars
Variável(is) que definem os grupos.
fun
Function handle que recebe os valores do grupo e retorna um escalar lógico, ou um vetor lógico com uma entrada por linha.
datavars
Variável(is) entregues a fun.

Argumentos de saída

B
Tabela com as linhas dos grupos aprovados, na ordem original.

Exemplo

Descartando grupos pequenos

tb = table(categorical({'a'; 'b'; 'a'; 'c'; 'a'}), [1; 2; 3; 4; 5], 'VariableNames', {'g', 'v'});
groupfilter(tb, 'g', @(x) numel(x) > 1, 'v')
Saída
ans = 3×2 table

    g    v
    _    _

    a    1
    a    3
    a    5

Veja também

groupsummary grouptransform groupcounts findgroups splitapply