Datu rāmju kon­ver­tē­ša­na ar funkciju melt() programmā R atvieglo pie­lā­go­ša­nos dažādām prasībām. Daudzas analīzes metodes, piemēram, lineārie modeļi un ANOVA, dod priekš­ro­ku datiem garā formātā, jo tas ir dabiskāks un vieglāk in­ter­pre­tē­jams.

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

R funkcija melt() pieder reshape2 paketam un tiek izmantota, lai pār­struk­tu­rē­tu datu rāmjus, jo īpaši, lai tos kon­ver­tē­tu no plaša formāta uz garu formātu. Plašā formātā mainīgie ir or­ga­ni­zē­ti at­se­viš­ķās kolonnās, savukārt garā formātā tie ir labāk redzami analīzēm un vi­zua­li­zā­ci­jām.

R programmā esošā melt() funkcija ir būtisks datu pār­vei­do­ša­nas rīks. Tā ir īpaši noderīga gadījumos, kad in­for­mā­ci­ja ir pieejama tikai plašā formātā, bet noteiktām analīzēm vai grafikam ir ne­pie­cie­šams garš formāts. Šī datu pār­struk­tu­rē­ša­nas opcija palielina datu rāmju elas­tī­gu­mu un ļauj optimāli izmantot dažādus R analīzes rīkus un vi­zua­li­zā­ci­jas bib­lio­tē­kas.

Kāda ir R funkcijas melt() sintakse?

R programmā funkciju melt() var pielāgot, iz­man­to­jot dažādus ar­gu­men­tus.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Tas attiecas uz datu rāmi, kuru vēlaties pār­struk­tu­rēt
  • na.rm: fa­kul­ta­tīvs arguments, kura no­klu­sē­ju­ma vērtība ir FALSE
  • value.name: Šis fa­kul­ta­tī­vais arguments ļauj nosaukt kolonnu, kas satur pār­struk­tu­rē­to mainīgo vērtības jaunajā datu kopā
  • id.vars: fa­kul­ta­tīvs arguments, kas norāda, kuras kolonnas jāpatur kā iden­ti­fi­ka­to­ri. columns tiek izmantots kā vietas aiz­vie­to­tājs.

Ap­ska­tī­sim piemēru:

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

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

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

Tagad iz­man­to­sim melt() un pār­vei­do­sim datu rāmi garā formātā:

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

Pār­struk­tu­rē­tais datu rāmis melted_df izskatās šādi:

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
R

Rezultāts ir datu rāmis, kas pār­struk­tu­rēts garā formātā. ID kolonna tika saglabāta kā iden­ti­fi­ka­tors, variable kolonna satur ie­priek­šē­jos kolonnu no­sau­ku­mus (A un B), bet Value kolonna satur at­bil­sto­š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ūk­sto­šās vērtības datu rāmjos.

Definēsim jaunu datu rāmi:

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

Datu rāmis ir šādā formā:

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

Tagad mēs pār­struk­tu­rē­sim datu rāmi, iz­man­to­jot melt():

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

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

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
R
Tip

Ja vēlaties uzzināt, kā apstrādāt virknes R, apskatiet mūsu di­gi­tā­la­jā ceļvedī pieejamos R substring() un R paste() apmācību ma­te­riā­lus.

Go to Main Menu