Como transpor um quadro de dados usando dplyr


Você pode usar a seguinte sintaxe básica para transpor um quadro de dados usando o pacote dplyr em R:

 library (dplyr)
library (tidyr)

df %>%
    pivot_wider(names_from = column1, values_from = column2)

O argumento Names_from especifica os valores a serem usados para nomes de colunas no quadro de dados transposto, e o argumento Values_from especifica os valores das células a serem usados no quadro de dados transposto.

Observe que o operador pipe ( %>% ) vem do pacote dplyr enquanto a função pivot_wider() vem do pacote Tidyr .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: transpor um dataframe usando dplyr

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

 #create data frame
df <- data. frame (team=c('Mavs', 'Nets', 'Kings', 'Lakers'),
                 dots=c(99, 104, 119, 113))

#view data frame
df

    team points
1 Mavs 99
2 Nets 104
3 Kings 119
4 Lakers 113

Agora, suponha que queiramos transpor o quadro de dados para que os nomes das equipes sejam usados como nomes de colunas e os valores dos pontos sejam usados como valores de células dentro do quadro de dados.

Podemos usar a seguinte sintaxe para fazer isso:

 library (dplyr)
library (tidyr)

#transpose data frame
df %>%
    pivot_wider(names_from = team, values_from = points)

# A tibble: 1 x 4
   Mavs Nets Kings Lakers
      
1 99 104 119 113

O quadro de dados foi transposto para que os nomes das equipes sejam usados como colunas e os valores dos pontos sejam usados como valores das células no quadro de dados.

Observe que o quadro de dados resultante agora contém 1 linha e 4 colunas.

Relacionado: Uma introdução à função pivot_wider() em R

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns usando dplyr:

Como filtrar linhas contendo uma determinada string usando dplyr
Como calcular frequências relativas usando dplyr
Como selecionar a primeira linha por grupo usando dplyr

Add a Comment

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