# Kaip pertvarkyti duomenų rėmus naudojant R funkciją „melt“

Duomenų rėmelių konvertavimas naudojant R programos funkciją `melt()` palengvina prisitaikymą prie įvairių reikalavimų. Daugelis analizės metodų, pvz., **linijiniai modeliai ir ANOVA**, teikia pirmenybę ilgam formatui, nes jis yra natūralesnis ir lengviau interpretuojamas.

## Kam naudojama R funkcija melt()?

R funkcija `melt()` priklauso `reshape2` paketui ir yra naudojama **duomenų rėmams pertvarkyti**, ypač juos konvertuoti iš plataus formato į ilgą formatą. Plataus formato atveju kintamieji yra išdėstyti atskirose stulpeliuose, o ilgo formato atveju jie yra geriau matomi analizės ir vizualizacijos tikslais.

R programos funkcija `melt()` yra būtinas įrankis duomenų transformavimui. Ji ypač naudinga, kai informacija yra prieinama tik plačiu formatu, o tam tikroms analizėms ar grafikams reikalingas ilgas formatas. Ši duomenų restruktūrizavimo galimybė padidina duomenų rėmelių lankstumą ir leidžia optimaliai naudoti įvairius **R analizės įrankius** ir vizualizavimo bibliotekas.

## Kokia yra R funkcijos melt() sintaksė?

R programos funkcija `melt()` gali būti pritaikyta naudojant įvairius argumentus.

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

- **`data.frame`**: Tai reiškia duomenų rėmelį, kurį norite pertvarkyti
- **`na.rm`**: neprivalomas argumentas, kurio numatytoji reikšmė yra `FALSE`
- **`value.name`**: Šis neprivalomas argumentas leidžia pavadinti stulpelį, kuriame yra pertvarkytų kintamųjų reikšmės naujame duomenų rinkinyje.
- **`id.vars`**: neprivalomas argumentas, kuris nurodo, kurios stulpeliai turėtų būti palikti kaip identifikatoriai. `columns` naudojamas kaip vietos laikiklis.

Pažvelkime į pavyzdį:

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

Gautas duomenų rėmelis atrodo taip:

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

Dabar panaudosime `melt()` ir transformuosime duomenų rėmelį į ilgą formatą:

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

Pertvarkytas duomenų rėmelis `melted_df` atrodo taip:

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

Rezultatas – duomenų rėmelis, pertvarkytas į ilgą formatą. `ID` stulpelis buvo paliktas kaip identifikatorius, `variable` stulpelis yra tai, kas anksčiau buvo stulpelių pavadinimai (`A` ir `B`), o `Value` stulpelis yra atitinkami elementai. Dėl`na.rm = FALSE` yra keletas trūkstamų verčių (pažymėtų `NA`).

## Kaip pašalinti NA įrašus naudojant R funkciją melt()

Naudodami parinktį `na.rm=True`, galite lengvai pašalinti trūkstamas reikšmes duomenų rėmuose.

Apibrėžkime naują duomenų rėmelį:

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

Duomenų rėmelis turi tokią formą:

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

Dabar pertvarkysime duomenų rėmelį naudodami `melt()`:

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

Naujas duomenų rėmelis `melted_df` dabar yra ilgo formato be `NA` verčių:

```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 Jei norite sužinoti, kaip manipuliuoti eilutėmis R kalboje, peržiūrėkite mūsų skaitmeniniame vadove esančius [R substring()](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-dalinis-simboliu-rinkinys/) ir [R paste()](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-pasta/) pamokėles.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-lydymas/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/r-lydymas/) for AI/LLM consumption.