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