Como usar a função tapply() em r (com exemplos)


A função tapply() em R pode ser usada para aplicar uma função a um vetor, agrupado por outro vetor.

Esta função usa a seguinte sintaxe básica:

seringueiro (X, ÍNDICE, DIVERSÃO, ..)

Ouro:

  • X : Um vetor ao qual aplicar uma função
  • ÍNDICE : Um vetor para agrupar
  • DIVERSÃO : A função a ser aplicada

Os exemplos a seguir mostram como usar esta função na prática com o seguinte quadro de dados em R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(14, 19, 13, 8, 15, 15, 17, 19),
                 assists=c(4, 3, 3, 5, 9, 14, 15, 12))

#view data frame
df

  team position points assists
1 AG 14 4
2 AG 19 3
3 AF 13 3
4 AF 8 5
5 BG 15 9
6 BG 15 14
7 BF 17 15
8 BF 19 12

Exemplo 1: aplicar uma função a uma variável, agrupada por uma variável

O código a seguir mostra como usar a função tapply() para calcular o valor médio dos pontos , agrupados por equipe :

 #calculate mean of points, grouped by team
tapply(df$points, df$team, mean)

   AB
13.5 16.5

Pelo resultado podemos ver:

  • O valor médio de pontos da equipe A é 13,5 .
  • O valor médio de pontos da equipe B é 16,5 .

Observe que você também pode incluir argumentos adicionais após a função, como na.rm , para indicar que deseja calcular a média ignorando os valores NA no quadro de dados:

 #calculate mean of points, grouped by team
tapply(df$points, df$team, mean, na. rm = TRUE )

   AB
13.5 16.5

Exemplo 2: aplicar uma função a uma variável, agrupada por diversas variáveis

O código a seguir mostra como usar a função tapply() para calcular o valor médio dos pontos , agrupados por equipe e posição :

 # calculate mean of points, grouped by team and position
tapply(df$points, list(df$team, df$position), mean, na. rm = TRUE )

FG
A 10.5 16.5
B 18.0 15.0

Pelo resultado podemos ver:

  • O valor médio de pontos da equipe A e da posição F é 10,5 .
  • O valor médio de pontos da equipe A e da posição G é 16,5 .
  • O valor médio de pontos da equipe B e da posição F é 18,0 .
  • O valor médio de pontos da equipe B e da posição G é 15,0 .

Nota : Neste exemplo, agrupamos por duas variáveis, mas podemos incluir quantas variáveis quisermos na função list() para agrupar ainda mais variáveis.

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar a função dim() em R
Como usar a função table() em R
Como usar a função sign() em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *