A conversão de data frames com a função melt(), na linguagem de pro­gra­ma­ção R, facilita sua adaptação para que atenda a di­fe­ren­tes re­qui­si­tos. 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 in­ter­pre­tar.

Para que serve a função R melt()?

A função R melt() faz parte do pacote reshape2. Ela é usada para re­es­tru­tu­rar data frames, es­pe­ci­al­mente em sua conversão do formato wide para long. No formato wide, as variáveis são or­ga­ni­za­das em colunas separadas, enquanto o formato long oferece uma melhor exibição para a re­a­li­za­ção de análises e vi­su­a­li­za­ções.

A função R melt() é uma fer­ra­menta essencial para trans­for­mar dados. Ela é es­pe­ci­al­mente útil quando as in­for­ma­ções só estão dis­po­ní­veis no formato wide, mas de­ter­mi­na­das análises ou gráficos requerem o uso do formato long. Essa opção de re­es­tru­tu­ra­ção de dados aumenta a fle­xi­bi­li­dade dos data frames e promove o uso otimizado de diversas fer­ra­men­tas de análise em R e bi­bli­o­te­cas de vi­su­a­li­za­ção.

Sintaxe da função R melt()

A função R melt() pode ser usada com di­fe­ren­tes ar­gu­men­tos.

melt(data.frame, na.rm = FALSE, value.name = "nome", id.vars = 'columns')
R
  • data.frame: Refere-se ao data frame que você deseja re­es­tru­tu­rar.
  • na.rm: Um argumento opcional que tem como valor padrão FALSE.
  • value.name: Argumento opcional que pos­si­bi­lita nomear a coluna que contém os valores das variáveis re­es­tru­tu­ra­das no novo conjunto de dados.
  • id.vars: Argumento opcional que indica quais colunas devem ser mantidas como iden­ti­fi­ca­do­res. Neste caso, columns é usado como pla­cehol­der.

Vejamos um exemplo:

df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))
R

O data frame re­sul­tante é o seguinte:

ID    A      B
1  1     4      8
2  2     7  NA
3  3  NA     5
R

Agora, vamos usar a função melt() e trans­for­mar o data frame em formato long:

melted_df <- melt(df, na.rm = FALSE, value.name = "Valor", id.vars = "ID")
R

O data frame re­es­tru­tu­rado 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             5
R

O resultado é um data frame que foi re­es­tru­tu­rado no formato long. A coluna ID foi mantida como um iden­ti­fi­ca­dor, a coluna variável contém os antigos nomes das colunas (A e B) e a coluna Valor contém os valores cor­res­pon­den­tes. Devido à presença de na.rm = FALSE, faltam alguns valores (si­na­li­za­dos 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))
R

O 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       1
R

Agora, vamos re­es­tru­tu­rar o data frame usando a função melt():

melted_df <- melt(df, na.rm = TRUE, value.name = "Valor", id.vars = "ID")
R

O 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        1
R
Dica

Se quiser aprender como manipular strings na linguagem R, acesse estes tutoriais sobre as funções R substring() e R paste() do nosso Digital Guide.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho 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
Ir para o menu principal