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:
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