# Kā pārstrukturēt datu rāmjus ar R funkciju melt

Datu rāmju konvertēšana ar funkciju `melt()` programmā R atvieglo pielāgošanos dažādām prasībām. Daudzas analīzes metodes, piemēram, **lineārie modeļi un ANOVA**, dod priekšroku datiem garā formātā, jo tas ir dabiskāks un vieglāk interpretējams.

## Kādam nolūkam tiek izmantota R funkcija melt()?

R funkcija `melt()` pieder `reshape2` paketam un tiek izmantota, lai **pārstrukturētu datu rāmjus**, jo īpaši, lai tos konvertētu no plaša formāta uz garu formātu. Plašā formātā mainīgie ir organizēti atsevišķās kolonnās, savukārt garā formātā tie ir labāk redzami analīzēm un vizualizācijām.

R programmā esošā `melt()` funkcija ir būtisks datu pārveidošanas rīks. Tā ir īpaši noderīga gadījumos, kad informācija ir pieejama tikai plašā formātā, bet noteiktām analīzēm vai grafikam ir nepieciešams garš formāts. Šī datu pārstrukturēšanas opcija palielina datu rāmju elastīgumu un ļauj optimāli izmantot dažādus **R analīzes rīkus** un vizualizācijas bibliotēkas.

## Kāda ir R funkcijas melt() sintakse?

R programmā funkciju `melt()` var pielāgot, izmantojot dažādus argumentus.

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

- **`data.frame`**: Tas attiecas uz datu rāmi, kuru vēlaties pārstrukturēt
- **`na.rm`**: fakultatīvs arguments, kura noklusējuma vērtība ir `FALSE`
- **`value.name`**: Šis fakultatīvais arguments ļauj nosaukt kolonnu, kas satur pārstrukturēto mainīgo vērtības jaunajā datu kopā
- **`id.vars`**: fakultatīvs arguments, kas norāda, kuras kolonnas jāpatur kā identifikatori. `columns` tiek izmantots kā vietas aizvietotājs.

Apskatīsim piemēru:

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

Rezultātā iegūtais datu rāmis izskatās šādi:

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

Tagad izmantosim `melt()` un pārveidosim datu rāmi garā formātā:

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

Pārstrukturētais datu rāmis `melted_df` izskatās šādi:

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

Rezultāts ir datu rāmis, kas pārstrukturēts garā formātā. `ID` kolonna tika saglabāta kā identifikators, `variable` kolonna satur iepriekšējos kolonnu nosaukumus (`A` un `B`), bet `Value` kolonna satur atbilstošos elementus. Sakarā`na.rm = FALSE` ir daži trūkstoši vērtības (atzīmētas ar `NA`).

## Kā izdzēst NA ierakstus ar R funkciju melt()

Ar opciju `na.rm=True` var viegli izņemt trūkstošās vērtības datu rāmjos.

Definēsim jaunu datu rāmi:

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

Datu rāmis ir šādā 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
```

Tagad mēs pārstrukturēsim datu rāmi, izmantojot `melt()`:

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

Jaunais datu rāmis `melted_df` tagad pastāv garā formātā bez `NA` vērtībām:

```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 Ja vēlaties uzzināt, kā apstrādāt virknes R, apskatiet mūsu digitālajā ceļvedī pieejamos [R substring()](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/r-apaksvirkne/) un [R paste()](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/r-pasta/) apmācību materiālus.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/r-kausesana/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/r-kausesana/) for AI/LLM consumption.