# Kuidas ümber struktureerida andmeraamistikke R-i sulatusfunktsiooniga

Andmeraamistikute teisendamine R-keele funktsiooniga `melt()` muudab erinevate nõuete täitmise lihtsamaks. Paljud analüüsimeetodid, nagu **lineaarsed mudelid ja ANOVA**, eelistavad pikaformaadis andmeid, kuna need on loomulikumad ja lihtsamini tõlgendatavad.

## Milleks kasutatakse R-i funktsiooni melt()?

R-i funktsioon `melt()` kuulub paketti `reshape2` ja seda kasutatakse **andmeraamistike ümberstruktureerimiseks**, eelkõige nende teisendamiseks laia formaadist pikasse formaati. Laias formaadis on muutujad organiseeritud eraldi veergudesse, samas kui pikk formaat pakub paremat kuvamist analüüside ja visualiseerimiste jaoks.

R-i `melt()` funktsioon on andmete teisendamiseks hädavajalik vahend. See on eriti oluline juhul, kui teave on kättesaadav ainult laia formaadis, kuid teatud analüüsid või graafikud nõuavad pikka formaati. See andmete ümberstruktureerimise võimalus suurendab andmeraamistikute paindlikkust ja võimaldab optimaalselt kasutada erinevaid **R-i analüüsivahendeid** ja visualiseerimisraamatukogusid.

## Milline on R-i funktsiooni melt() süntaks?

R-i funktsiooni `melt()` saab kohandada erinevate argumentide abil.

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

- **`data.frame`**: See viitab andmeraamile, mida soovite ümber struktureerida
- **`na.rm`**: Valikuline argument, mille vaikimisi väärtus on `FALSE`
- **`value.name`**: See valikuline argument võimaldab teil nimetada veeru, mis sisaldab ümberstruktureeritud muutujate väärtusi uues andmekogumis
- **`id.vars`**: Valikuline argument, mis näitab, millised veerud tuleks identifikaatoritena säilitada. `columns` kasutatakse asendusmärgina.

Vaatame ühte näidet:

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

Saadud andmeraamistik näeb välja järgmine:

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

Nüüd kasutame `melt()` ja teisendame andmeraamistiku pikaks formaadiks:

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

Ümberstruktureeritud andmeraamistik `melted_df` näeb välja järgmine:

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

Tulemuseks on andmeraamistik, mis on ümber struktureeritud pikaks formaadiks. `ID` veerg säiliti identifikaatorina, `variable` veerg sisaldab varasemaid veerunimesid (`A` ja `B`) ning `Value` veerg sisaldab vastavaid elemente.`na.rm = FALSE` tõttu on mõned väärtused puudu (märgitud `NA` veeruga).

## Kuidas eemaldada NA-kandeid R-i melt() abil

Puuduvad väärtused andmeraamides saab hõlpsasti eemaldada valikuga `na.rm=True`.

Määratleme uue andmeraamistiku:

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

Andmeraam on järgmise kujuga:

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

Nüüd struktureerime andmeraamistiku ümber, kasutades `melt()`:

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

Uus andmeraamistik `melted_df` on nüüd pikk formaat ilma `NA` väärtuseta:

```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 Kui soovite õppida, kuidas R-is stringe manipuleerida, vaadake meie digitaalses juhendis [R substring()](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-alajaotus/) ja [R paste()](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-kleepida/) õpetusi.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-sulamine/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-sulamine/) for AI/LLM consumption.