Pular para o conteúdo principal

Tutorial de data reshaping em R

Aprenda sobre data reshaping em R, funções como rbind(), cbind(), além de Melt(), Dcast() e, por fim, a função de transposição.
Atualizado 17 de set. de 2026  · 7 min lido

Explorar com IA

ChatGPTClaudePerplexity

Data reshaping em R é organizar linhas e colunas do seu jeito para usar os dados conforme a sua necessidade. Na maioria dos casos, os dados são trabalhados no formato de data frame em R para processamento, usando funções como "rbind()", "cbind()" etc.

Nesse processo, você reorganiza os dados em linhas e colunas. Reshaping é deixar os dados no formato exato de que você precisa para continuar o processamento.

Criando seus dados

Vamos criar um gerador de números aleatórios e montar colunas para concatená-las em um data frame. Também vamos inserir um id para usar depois. "set.seed(123)" é usado para produzir números aleatórios reprodutíveis, ou seja, qualquer pessoa que rodar o código terá a mesma amostra. Serão criadas três variáveis, colm1, colm2, colm3. Com a ajuda de "sample()", são gerados valores de 1 a 15, com possibilidade de repetição. O data frame armazena esses dados em tabela, e o id é adicionado como um número único.

set.seed(123)
N <- 15
colm1  <- sample(1:15, N, replace=TRUE)
colm2  <- sample(1:15, N, replace=TRUE)
colm3  <- sample(1:15, N, replace=TRUE)
df_Temp <- data.frame(colm1, colm2,colm3)
df_Temp$id<-seq(nrow(df_Temp))
df_Temp

O código acima gera a saída a seguir, com três colunas chamadas "colm1", "colm2", "colm3" e um id de 1 a 15. Os valores de cada coluna são preenchidos com números de 1 a 15; alguns se repetem e outros podem nem aparecer.

 colm1   colm2   colm3  id
  15      11     14     1
  15      5      3      2
  3       3      4      3
  14      11     14     4
  3       9      1      5
  10      12     11     6
  2       9      7      7
  6       9      5      8
  11      13     12     9
  5       3      15     10
  4       8      10     11
  14      10     13     12
  6       7      7      13
  9       10     9      14
 10       9      9      15 

função cbind

Uso: combina vetores, matrizes e data frames por colunas.
Parâmetros: cbind(v1, v2): v1 e v2 podem ser vetores, matrizes ou data frames.

Veja o exemplo de binding na prática.

O id pode ser selecionado por "df_Temp[,4]", enquanto "df_Temp[,2]" seleciona "colm2" de df_Temp, como abaixo. Esses dois servem de parâmetros para "cbind()" e o resultado é armazenado na variável "cbindexample". Em seguida, os nomes das colunas podem ser alterados com "colnames()", que recebe o objeto e um vetor com os novos nomes, por exemplo: "newid", "new_colm2".

cbindexample<-cbind(df_Temp[,4],df_Temp[,2])
colnames(cbindexample)<- c('newid','new_colm2')
cbindexample

O código acima gera a saída abaixo, mostrando que você pode unir as duas colunas id e colm2 usando a função "cbind" para criar um novo data frame. Os nomes das colunas foram alterados para "new_colm2" e "id" virou "newid".

newid   new_colm2
1         11
2         5
3         3
4         11
5         9
6         12
7         9
8         9
9         13
10         3
11         8
12         10
13         7
14         10
15         9

função rbind:

Uso: rbind combina vetores, matrizes ou data frames por linhas.
Parâmetros: rbind(v1, v2): v1 e v2 podem ser vetores, matrizes ou data frames.

Vamos criar um novo vetor chamado "new_vector" e combiná-lo com "cbindexample" (de 2 colunas) usando "rbind", concatenando ambos e armazenando em "rbindexample".

new_vector<- c(16,15)
rbindexample<- rbind(cbindexample,new_vector)
rbindexample

O código acima gera a saída abaixo, na qual uma nova linha é adicionada com os valores 16 e 15 em "newid" e "new_colm2", respectivamente.

newid    new_colm2
1        11
2        5
3        3
4        11
5        9
6        12
7        9
8        9
9        13
10       3
11       8
12       10
13       7
14       10
15       9
16       15

função melt:

Uso: a função melt converte um objeto para o estado "derretido" (long format), ou seja, pega várias colunas de dados e transforma em uma única coluna.
Parâmetros: melt(data, …, na.rm=FALSE/TRUE, value.name=”value”),
data: o input que você vai "derreter".
...: argumentos passados para/por outras funções.
na.rm: usado para tratar valores ausentes, convertendo ausências explícitas em implícitas.
value.name: nome da coluna onde os valores serão armazenados.
Vamos ver o código para "derreter" os dados usando a variável id, gerando uma coluna com o nome da coluna original e outra com o valor:

Importe o pacote "reshape2" com "library()" e use melt para combinar as colunas colm1, colm2, colm3 de "df_Temp" em um único lugar chamado "variable", mantendo "id" como identificador.

library(reshape2)
molted=melt(df_Temp,id.vars=c("id"))
molted
id    variable value
1    colm1    15
2    colm1     15
3    colm1     3
4    colm1     14
5    colm1     3
6    colm1     10
7    colm1     2
8    colm1     6
9    colm1     11
10    colm1     5
11    colm1     4
12    colm1     14
13    colm1     6
14    colm1     9
15    colm1     10
1    colm2     11
2    colm2     5
3    colm2     3
4    colm2     11
5    colm2     9
6    colm2     12
7    colm2     9
8    colm2     9
9    colm2     13
10    colm2     3
11    colm2     8
12    colm2     10
13    colm2     7
14    colm2     10
15    colm2     9
1    colm3     14
2    colm3     3
3    colm3     4
4    colm3     14
5    colm3     1
6    colm3     11
7    colm3     7
8    colm3     5
9    colm3     12
10    colm3     15
11    colm3     10
12    colm3     13
13    colm3     7
14    colm3     9
15    colm3     9

A saída mostra que, ao derreter os dados de colm1, colm2 e colm3 com base na variável id, tudo é combinado em uma coluna chamada "variable", enquanto os valores ficam em "value".

função dcast:

Uso: quando você tem um conjunto de dados derretido (long), pode reconvertê-lo ao formato original (wide) com esta função.
Parâmetros: dcast(data, id_variable~value),
data: dados derretidos que precisam voltar ao formato original.
id_variable: uma ou mais colunas usadas para derreter os dados das outras colunas em uma só.
~: após esse sinal, informamos os valores ou a nova coluna derretida do dataset.

No código abaixo, "reshape2" é importado com "library()" e "dcast()" recebe como primeiro parâmetro os dados resultantes de "melt()" e usa o símbolo "~" com id para formar as novas colunas a partir de "variable".

library(reshape2)
dcast(molted,id~variable)
id    colm1    colm2    colm3
1        15        11        14
2        15        5         3
3        3        3         4
4        14        11       14
5        3        9         1
6        10        12        11
7        2         9         7
8        6        9         5
9       11        13        12
10       5        3        15
11       4        8        10
12       14        10        13
13       6        7        7
14       9        10        9
15      10        9        9

Perceba que, após "melt()", os dados voltam ao conjunto original. Há três colunas com seus respectivos valores e o id em uma coluna separada.

função de transposição:

Uso: converte linhas em colunas e colunas em linhas.
Parâmetros: t(data). "data" é o data frame que você quer transpor.

Vamos inverter linhas e colunas usando a função de transposição. Basta usar "t(df_Temp)", como abaixo.

trans <- t(df_Temp)
trans

O código acima gera a seguinte saída:

colm1    15    15    3    14    3    10    2    6    11    5    4    14    6    9    10
colm2    11    5    3    11    9    12    9    9    13    3    8    10    7    10    9
colm3    14    3    4    14    1    11    7    5    12    15    10    13    7    9    9
id    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15

Veja que o data frame, que tinha 15 linhas e quatro colunas, passa a ter 15 colunas e 3 linhas após a transposição.

Parabéns

Parabéns, você chegou ao fim deste tutorial!

Neste tutorial, você viu diferentes funções do R como "rbind()", "cbind()", além de "Melt()", "Dcast()" e, por fim, a função de transposição.

Se quiser aprender mais sobre R, faça o curso Introduction to R da DataCamp e confira nosso guia R Packages: A Beginner's Tutorial.

Referências:
Funções melt

Tópicos
R
Ciência de dados

Cursos de R

Curso

Introdução ao R

4 h
3.1M
Domine os conceitos básicos de análise de dados em R, incluindo vetores, listas e quadros de dados, e pratique o R com conjuntos de dados reais.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial de Pipes em R para iniciantes

Saiba mais sobre o famoso operador de pipe %>% e outros pipes no R, por que e como você deve usá-los e quais alternativas você pode considerar!
Karlijn Willems's photo

Karlijn Willems

15 min

Tutorial

Tutorial de regressão linear no R

Neste tutorial, você aprenderá os fundamentos de um modelo estatístico muito popular: a regressão linear.

Eladio Montero Porras

15 min

multiple linear regression

Tutorial

Regressão linear múltipla no R: Tutorial com exemplos

Uma visão geral completa para entender as regressões lineares múltiplas no R por meio de exemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Criação de uma lista no R

Pratique Listas em R usando o material do curso Intro to R do DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

Tutorial

Tutorial de análise de componentes principais no R

Neste tutorial, você aprenderá a usar o R PCA (Principal Component Analysis) para extrair dados com muitas variáveis e criar visualizações para exibir esses dados.
Zoumana Keita 's photo

Zoumana Keita

15 min

Tutorial

Como fazer um histograma ggplot2 no R

Aprenda a criar um histograma ggplot2 no R. Crie histogramas no R com base na gramática dos gráficos.

Kevin Babitz

15 min

Ver MaisVer Mais