R melt: Como reestruturar data frames
A conversão de data frames com a função melt(), na linguagem de programação R, facilita sua adaptação para que atenda a diferentes requisitos. Muitos métodos de análise, como modelos lineares e de variância (ANOVA), favorecem dados em formato long, pois eles são mais naturais e fáceis de interpretar.
Para que serve a função R melt()?
A função R melt() faz parte do pacote reshape2. Ela é usada para reestruturar data frames, especialmente em sua conversão do formato wide para long. No formato wide, as variáveis são organizadas em colunas separadas, enquanto o formato long oferece uma melhor exibição para a realização de análises e visualizações.
A função R melt() é uma ferramenta essencial para transformar dados. Ela é especialmente útil quando as informações só estão disponíveis no formato wide, mas determinadas análises ou gráficos requerem o uso do formato long. Essa opção de reestruturação de dados aumenta a flexibilidade dos data frames e promove o uso otimizado de diversas ferramentas de análise em R e bibliotecas de visualização.
Sintaxe da função R melt()
A função R melt() pode ser usada com diferentes argumentos.
melt(data.frame, na.rm = FALSE, value.name = "nome", id.vars = 'columns')Rdata.frame: Refere-se ao data frame que você deseja reestruturar.na.rm: Um argumento opcional que tem como valor padrãoFALSE.value.name: Argumento opcional que possibilita nomear a coluna que contém os valores das variáveis reestruturadas no novo conjunto de dados.id.vars: Argumento opcional que indica quais colunas devem ser mantidas como identificadores. Neste caso,columnsé usado como placeholder.
Vejamos um exemplo:
df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))RO data frame resultante é o seguinte:
ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5RAgora, vamos usar a função melt() e transformar o data frame em formato long:
melted_df <- melt(df, na.rm = FALSE, value.name = "Valor", id.vars = "ID")RO data frame reestruturado melted_df ficaria assim:
ID variável Valor
1 1 A 4
2 2 A 7
3 3 A NA
4 1 B 8
5 2 B NA
6 3 B 5RO resultado é um data frame que foi reestruturado no formato long. A coluna ID foi mantida como um identificador, a coluna variável contém os antigos nomes das colunas (A e B) e a coluna Valor contém os valores correspondentes. Devido à presença de na.rm = FALSE, faltam alguns valores (sinalizados com NA).
Remover entradas NA com a função R melt()
É possível remover os valores faltantes nos data frames usando a opção na.rm=True.
Vamos definir um novo data frame:
df <- data.frame(ID = 1:4, A = c(3, 8, NA, 5), B = c(6, NA, 2, 9), C = c(NA, 7, 4, 1))RO data frame tem a seguinte forma:
ID A B C
1 1 3 6 NA
2 2 8 NA 7
3 3 NA 2 4
4 4 5 9 1RAgora, vamos reestruturar o data frame usando a função melt():
melted_df <- melt(df, na.rm = TRUE, value.name = "Valor", id.vars = "ID")RO novo data frame melted_df passa a existir em formato long sem os valores NA:
ID variável Valor
1 1 A 3
2 2 A 8
3 4 A 5
4 1 B 6
5 3 B 2
6 4 B 9
7 2 C 7
8 3 C 4
9 4 C 1RSe quiser aprender como manipular strings na linguagem R, acesse estes tutoriais sobre as funções R substring() e R paste() do nosso Digital Guide.
- Fique online com 99,99% de tempo de atividade e segurança robusta
- Aumente o desempenho com um clique à medida que o tráfego cresce
- Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

