# Kako prestrukturirati podatkovne okvire s funkcijo melt v R-ju

Pretvarjanje podatkovnih okvirov s funkcijo `melt()` v R olajša prilagajanje različnim zahtevam. Mnoge metode analize, kot so **linearni modeli in ANOVA**, dajejo prednost podatkom v dolgem formatu, ker so bolj naravni in lažji za interpretacijo.

## Za kaj se uporablja funkcija melt() v R?

Funkcija R `melt()` spada v paket `reshape2` in se uporablja za **prestrukturiranje podatkovnih okvirov**, zlasti za pretvorbo iz širokega formata v dolg format. V širokem formatu so spremenljivke organizirane v ločenih stolpcih, medtem ko dolg format omogoča boljšo prikazovanje za analize in vizualizacije.

Funkcija `melt()` v R je bistveno orodje za preoblikovanje podatkov. Zlasti je pomembna, kadar so informacije na voljo le v širokem formatu, določene analize ali grafike pa zahtevajo dolg format. Ta možnost za prestrukturiranje podatkov poveča prilagodljivost podatkovnih okvirov in omogoča optimalno uporabo različnih **orodij za analizo R** in knjižnic za vizualizacijo.

## Kakšna je sintaksa funkcije melt() v jeziku R?

Funkcijo `melt()` v R je mogoče prilagoditi z različnimi argumenti.

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

- **`data.frame`**: To se nanaša na podatkovni okvir, ki ga želite prestrukturirati
- **`na.rm`**: Izbirni argument, ki ima privzeto vrednost `FALSE`
- **`value.name`**: Ta neobvezni argument vam omogoča poimenovanje stolpca, ki vsebuje vrednosti za prestrukturirane spremenljivke v novem nizu podatkov
- **`id.vars`**: Izbirni argument, ki označuje, katere stolpce je treba ohraniti kot identifikatorje. `columns` se uporablja kot zaznamek.

Poglejmo primer:

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

Rezultati podatkovnega okvira so naslednji:

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

Sedaj bomo uporabili `melt()` in pretvorili podatkovni okvir v dolg format:

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

Prestrukturirani podatkovni okvir `melted_df` je videti takole:

```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
```

Rezultat je podatkovni okvir, ki je bil prestrukturiran v dolg format. Stolpec `ID` je bil ohranjen kot identifikator, stolpec `variable` vsebuje tisto, kar so bili prej imena stolpcev (`A` in `B`), stolpec `Value` pa vsebuje ustrezne elemente. Zaradi`na.rm = FALSE` manjkajo nekatere vrednosti (označene z `NA`).

## Kako odstraniti NA vnose z R-jevo funkcijo melt()

Manjkajoče vrednosti v podatkovnih okvirih lahko enostavno odstranite z možnostjo `na.rm=True`.

Opredelimo nov podatkovni okvir:

```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))
```

Podatkovni okvir ima naslednjo obliko:

```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
```

Sedaj bomo prestrukturirali podatkovni okvir z uporabo `melt()`:

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

Novi podatkovni okvir `melted_df` je zdaj v dolgem formatu brez `NA` vrednosti:

```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 Če se želite naučiti, kako manipulirati z nizi v R, si oglejte vodiča [R substring()](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-podniz/) in [R paste()](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-pasta/) v našem digitalnem vodniku.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-taljenje/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/r-taljenje/) for AI/LLM consumption.