# Hoe dataframes te herstructureren met de melt-functie van R

Het converteren van dataframes met de functie `melt()` in R maakt het gemakkelijker om aan verschillende vereisten te voldoen. Veel analysemethoden, zoals **lineaire modellen en ANOVA**, geven de voorkeur aan data in een lang formaat, omdat dit natuurlijker en gemakkelijker te interpreteren is.

## Waarvoor wordt de functie melt() van R gebruikt?

De functie `melt()` behoort tot het pakket `reshape2` en wordt gebruikt om **dataframes te herstructureren**, met name om ze om te zetten van een breed formaat naar een lang formaat. In een breed formaat worden variabelen in afzonderlijke kolommen georganiseerd, terwijl een lang formaat een betere weergave biedt voor analyses en visualisaties.

De functie `melt()` in R is een essentieel hulpmiddel voor het transformeren van gegevens. Deze functie is vooral relevant wanneer informatie alleen beschikbaar is in een breed formaat, maar bepaalde analyses of grafieken een lang formaat vereisen. Deze optie voor het herstructureren van gegevens vergroot de flexibiliteit van gegevensframes en maakt optimaal gebruik van verschillende **R-analysetools** en visualisatiebibliotheken mogelijk.

## Wat is de syntaxis van de functie melt() in R?

De `melt()` -functie in R kan worden aangepast met behulp van verschillende argumenten.

```R
melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
```

- **`data.frame`**: Dit verwijst naar het gegevensframe dat u wilt herstructureren
- **`na.rm`**: Een optioneel argument met een standaardwaarde van `FALSE`
- **`value.name`**: Met dit optionele argument kunt u de kolom een naam geven die de waarden bevat voor de geherstructureerde variabelen in de nieuwe dataset
- **`id.vars`**: Een optioneel argument dat aangeeft welke kolommen als identificatie moeten worden behouden. `columns` wordt gebruikt als tijdelijke aanduiding.

Laten we eens naar een voorbeeld kijken:

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

Het resulterende gegevensframe ziet er als volgt uit:

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

Nu gebruiken we `melt()` en zetten we het gegevensframe om in een lang formaat:

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

Het geherstructureerde gegevensframe `melted_df` ziet er als volgt uit:

```R
ID  variable  Value
1  1                A              4
2  2                A              7
3  3                A          NA
4  1                B              8
5  2                B          NA
6  3                B             5
```

Het resultaat is een gegevensframe dat is geherstructureerd in een lang formaat. De `ID` kolom is behouden als identificatie, de `variable` kolom bevat wat voorheen kolomnamen waren (`A` en `B`) en de `Value` kolom bevat de bijbehorende elementen. Vanwege`na.rm = FALSE` zijn er enkele ontbrekende waarden (gemarkeerd met `NA`).

## Hoe NA-vermeldingen verwijderen met R’s melt()

Je kunt ontbrekende waarden in gegevensframes eenvoudig verwijderen met optie `na.rm=True`.

Laten we een nieuw gegevensframe definiëren:

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

Het gegevensframe heeft de volgende vorm:

```R
ID    A     B      C
1   1     3     6    NA
2   2     8   NA      7
3   3   NA    2       4
4   4     5     9       1
```

Nu gaan we het gegevensframe herstructureren met behulp van `melt()`:

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

Het nieuwe gegevensframe `melted_df` bestaat nu in een lang formaat zonder `NA` waarden:

```R
ID    variable  Value
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
```

Tip Als u meer wilt weten over het manipuleren van strings in R, bekijk dan de tutorials [R substring()](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/r-substring/) en [R paste()](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/r-pasta/) in onze digitale gids.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/r-smelten/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/r-smelten/) for AI/LLM consumption.