Ga naar hoofdinhoud

Data reshaping in R-tutorial

Leer over data reshaping in R, verschillende functies zoals rbind(), cbind(), samen met Melt(), Dcast(), en tot slot de transpose-functie.
Bijgewerkt 2 okt 2026  · 7 min lezen

Verken met AI

ChatGPTClaudePerplexity

Data reshaping in R is zoiets als rijen en kolommen rangschikken op jouw manier, zodat je ze kunt gebruiken volgens jouw wensen; meestal worden gegevens als een dataframe-indeling in R gebruikt om dataverwerking te doen met functies zoals 'rbind()', 'cbind()', enz.

In dit proces hervorm je de gegevens of organiseer je ze opnieuw in rijen en kolommen. Reshaping is het herorganiseren van gegevens op een specifieke manier die je nodig hebt om de data verder te verwerken.

Je data maken

Laten we een generator voor willekeurige getallen maken en kolommen genereren om ze te concateneren in het dataframe. Voeg ook een id toe voor later gebruik. 'set.seed(123)' wordt gebruikt om de willekeurige getallen te produceren waarbij dezelfde steekproef op elke machine kan worden gereproduceerd door iedereen die het gebruikt. Er worden drie variabelen gemaakt: colm1, colm2, colm3. Met behulp van 'sample()' worden waarden van 1 tot 15 gegenereerd, en dezelfde waarde kan herhaald worden. Ook wordt een dataframe gebruikt om gegevens in de tabel op te slaan, en er wordt een id toegevoegd, wat een uniek nummer is.

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

De bovenstaande code geeft de volgende output, waarin drie kolommen staan met de namen 'colm1', 'colm2', 'colm3' en een id van 1 tot 15. De waarden in de respectievelijke kolommen zijn gevuld met 1 tot 15, waarbij sommige getallen herhaald worden en sommige misschien niet voorkomen.

 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 

cbind-functie

Gebruik: gebruikt om vectoren, matrices en dataframes per kolom te combineren.
Parameters: cbind(v1,v2): v1,v2 kunnen vectoren, matrices of dataframes zijn

Laten we het voorbeeld van binden in actie bekijken.

id kan geselecteerd worden met 'df_Temp[,4]' terwijl 'df_Temp[,2]' 'colm2' van df_Temp selecteert zoals hieronder, wat fungeert als parameter voor 'cbind()' en wordt opgeslagen in de variabele 'cbindexample'. Verder kunnen de kolomnamen worden gewijzigd met behulp van 'colnames()', dat de variabele accepteert met de vectorinvoer c naar een nieuwe waarde, d.w.z. 'newid', 'new_colm2'.

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

De bovenstaande code geeft de volgende output, waaruit blijkt dat je twee kolommen, id en column2, kunt samenvoegen met de 'cbind'-functie om een nieuw dataframe te maken. Ook is de kolomnaam gewijzigd in 'new_colm2' terwijl 'id' is veranderd in '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

rbind-functie:

Gebruik: rbind wordt gebruikt om vectoren, matrices of dataframes per rij te combineren.
Parameters: rbind(v1,v2): v1,v2 kunnen vectoren, matrices of dataframes zijn.

Laten we een nieuwe vector maken genaamd 'new_vector' en die combineren met een nieuwe 'cbindexample' van 2 kolommen met behulp van 'rbind', waarbij beide worden geconcateneerd en opgeslagen in 'rbindexample'.

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

De bovenstaande code geeft de onderstaande output, waarin de nieuwe rij is toegevoegd met de waarden 16 en 15, respectievelijk in 'newid' en 'new_colm2'.

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

Melt-functie:

Gebruik: De melt-functie wordt gebruikt om een object in een gesmolten staat om te zetten; dat betekent dat het meerdere kolommen met data neemt en deze omzet naar één enkele kolom met data.
Parameters: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” ),
Data: Input die je gaat melt-en.
...: Input die wordt doorgegeven aan of afkomstig is van.
Na.rm: Wordt gebruikt om expliciete missende waarden om te zetten in impliciete missende waarden.
Value.name: voor het opslaan van waarden in variabelen
Laten we naar code kijken waarmee je de data 'molt' met behulp van de id-variabele in één kolom met kolomnaam en waarde:

Laten we de bibliotheek 'reshape2' importeren met 'library()' en melt gebruiken om de kolommen van 'dfTemp' genaamd colm1, colm2, colm3 te combineren op één plek genaamd 'variable' volgens de variabele 'id'.

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

De bovenstaande output laat zien dat wanneer je de data van colm1, colm2, colm3 smelt volgens de variabele id, deze worden gecombineerd in één kolom met de naam 'variable' en de waarden van de kolom in 'value' staan.

Dcast-functie:

Gebruik: wanneer je een gesmolten dataset hebt, kun je die met deze functie terugzetten naar het oorspronkelijke formaat.
Parameters: dcast(data,id_variable~value),
Data: gesmolten data die teruggezet moet worden naar de oorspronkelijke vorm.
Id_variable: één of meerdere kolommen die gebruikt zijn om de data van andere kolommen in één kolom te smelten.
~: na dit teken gebruiken we de waarden of de nieuwe gesmolten kolom van de gesmolten dataset.

Hieronder zie je code waarin 'reshape2' wordt geïmporteerd met 'library()', waar 'dcast()' als eerste parameter de data neemt waarop de 'molt()'-functie is uitgevoerd en het '~'-teken met id waar de nieuwe gesmolten kolom wordt gevormd.

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

Je ziet dat de data na de 'molt()'-functie weer terugverandert naar de oorspronkelijke dataset. Er zijn drie kolommen met hun respectieve waarden in de kolommen en id in een aparte kolom.

Transpose-functie:

Gebruik: Wordt gebruikt om rijen in kolommen te veranderen en kolommen in rijen.
Parameters: t(data), data is het dataframe dat je moet doorgeven om de transpose te krijgen.

Laten we de rij naar kolom en omgekeerd veranderen met behulp van de transpose-functie. Dat kan eenvoudig met 't(df_Temp)', zoals hieronder gedaan.

trans <- t(df_Temp)
trans

De bovenstaande code geeft de volgende output:

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

Je ziet dat het dataframe met de vorm van 15 rijen en vier kolommen is veranderd in 15 kolommen en 3 rijen door de transpose van de data te nemen.

Gefeliciteerd

Gefeliciteerd, je bent aan het einde van deze tutorial gekomen!

In deze tutorial heb je verschillende functies van R behandeld zoals 'rbind()', 'cbind()', samen met 'Melt()', 'Dcast()', en tot slot de transpose-functie.

Wil je meer leren over R? Volg dan DataCamp's Introduction to R en bekijk onze R Packages: A Beginner's Tutorial.

Referenties:
Melt-functies

Onderwerpen
R
Data Science

R-cursussen

{count, plural, one {Cursus} other {Cursussen}}

Introductie tot R

{hours} uur
3.1M
Beheers de basis van data-analyse in R, inclusief vectors, lists en data frames, en oefen met echte datasets.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

{count, plural, one {blog} other {blogs}}

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken