Como usar pivot_wider() em r


A função pivot_wider() do pacote Tidyr em R pode ser usada para girar um bloco de dados de um formato longo para um formato amplo.

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

 library (tidyr)

df %>% pivot_wider(names_from = var1, values_from = var2)

Ouro:

  • nomes_de : A coluna cujos valores serão usados como nomes de coluna
  • valores_from : A coluna cujos valores serão usados como valores de célula

O exemplo a seguir mostra como usar esta função na prática.

Relacionado: Dados longos ou largos: qual é a diferença?

Exemplo: Use pivot_wider() em R

Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:

 #create data frame
df <- data. frame (player=rep(c('A', 'B'), each= 4 ),
                 year=rep(c(1, 1, 2, 2), times= 2 ),
                 stat=rep(c('points', 'assists'), times= 4 ),
                 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

Podemos usar a função pivot_wider() para girar este quadro de dados em um formato amplo:

 library (tidyr)

#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)

# A tibble: 4 x 4
  player year points assists
         
1 A 1 14 6
2 A 2 18 7
3 B 1 22 9
4 B 2 38 4

Observe que os valores na coluna de estatísticas agora são usados como nomes de colunas e os valores na coluna de quantidade são usados como valores de células nessas novas colunas.

O resultado final é um grande bloco de dados.

Nota : Você pode encontrar a documentação completa da função pivot_wider() aqui .

Recursos adicionais

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

Como usar a função Spread em R
Como usar a função de coleta em R
Como usar uma função separada em R
Como usar a função Unite em R

Add a Comment

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