Como usar a função melt() em r


Você pode usar a função melt() do pacote reshape2 em R para converter um quadro de dados de um formato amplo para um formato longo.

Um formato amplo contém valores que não se repetem na primeira coluna.

Um formato longo contém valores que se repetem na primeira coluna.

Por exemplo, considere os dois conjuntos de dados a seguir que contêm exatamente os mesmos dados expressos em formatos diferentes:

Formato de dados largo ou longo

A função melt() usa a seguinte sintaxe básica para converter um quadro de dados de formato amplo em formato longo:

 melt(df, id=' team ')

O argumento id especifica qual variável usar como primeira coluna do quadro de dados cujos valores serão repetidos.

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

Exemplo: como usar melt() em R

Suponha que temos o seguinte quadro de dados em R que está atualmente em formato amplo:

 #create data frame in wide format
df <- data. frame (team=c('A', 'B', 'C', 'D'),
                 dots=c(88, 91, 99, 94),
                 assists=c(12, 17, 24, 28),
                 rebounds=c(22, 28, 30, 31))

#view data frame
df

  team points assists rebounds
1 A 88 12 22
2 B 91 17 28
3 C 99 24 30
4 D 94 28 31

Podemos usar a função melt() para converter rapidamente o quadro de dados em um formato longo:

 library (reshape2)

#use melt() to convert data frame from wide to long format
long_df <- melt(df, id=' team ')

#view long data frame
long_df

   team variable value
1 A points 88
2 B points 91
3 C points 99
4 D points 94
5 A assists 12
6 B assists 17
7 C assists 24
8 D assists 28
9 A rebounds 22
10 B rebounds 28
11 C rebounds 30
12 D rebounds 31

Observe que o quadro de dados agora está em formato longo.

As colunas de pontos , assistências e rebotes foram todas compactadas em uma única coluna chamada variável , enquanto seus valores foram todos compactados em uma única coluna chamada valores .

Sinta-se à vontade para renomear as colunas do quadro de dados resultante usando a funçãonames() :

 #rename columns in long_df
names(long_df) <- c(' team ', ' metric ', ' amount ')

#view updated data frame
long_df

   team metric amount
1 A points 88
2 B points 91
3 C points 99
4 D points 94
5 A assists 12
6 B assists 17
7 C assists 24
8 D assists 28
9 A rebounds 22
10 B rebounds 28
11 C rebounds 30
12 D rebounds 31

Observe que as colunas foram renomeadas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como filtrar linhas em R
Como transpor um dataframe para R
Como renomear colunas de quadro de dados em R

Add a Comment

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