Duomenų rėmelių kon­ver­ta­vi­mas naudojant R programos funkciją melt() pa­leng­vi­na pri­si­tai­ky­mą prie įvairių rei­ka­la­vi­mų. Daugelis analizės metodų, pvz., li­ni­ji­niai modeliai ir ANOVA, teikia pirmenybę ilgam formatui, nes jis yra na­tū­ra­les­nis ir lengviau in­ter­pre­tuo­ja­mas.

Kam naudojama R funkcija melt()?

R funkcija melt() priklauso reshape2 paketui ir yra naudojama duomenų rėmams per­tvar­ky­ti, ypač juos kon­ver­tuo­ti iš plataus formato į ilgą formatą. Plataus formato atveju kin­ta­mie­ji yra išdėstyti atskirose stul­pe­liuo­se, o ilgo formato atveju jie yra geriau matomi analizės ir vi­zu­a­li­za­ci­jos tikslais.

R programos funkcija melt() yra būtinas įrankis duomenų trans­for­ma­vi­mui. Ji ypač naudinga, kai in­for­ma­ci­ja yra prieinama tik plačiu formatu, o tam tikroms analizėms ar grafikams rei­ka­lin­gas ilgas formatas. Ši duomenų restruk­tū­ri­za­vi­mo galimybė padidina duomenų rėmelių lankstumą ir leidžia op­ti­ma­liai naudoti įvairius R analizės įrankius ir vi­zu­a­li­za­vi­mo bi­b­lio­te­kas.

Kokia yra R funkcijos melt() sintaksė?

R programos funkcija melt() gali būti pri­tai­ky­ta naudojant įvairius ar­gu­men­tus.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: Tai reiškia duomenų rėmelį, kurį norite per­tvar­ky­ti
  • na.rm: ne­pri­va­lo­mas ar­gu­men­tas, kurio nu­ma­ty­to­ji reikšmė yra FALSE
  • value.name: Šis ne­pri­va­lo­mas ar­gu­men­tas leidžia pavadinti stulpelį, kuriame yra per­tvar­ky­tų kintamųjų reikšmės naujame duomenų rinkinyje.
  • id.vars: ne­pri­va­lo­mas ar­gu­men­tas, kuris nurodo, kurios stul­pe­liai turėtų būti palikti kaip iden­ti­fi­ka­to­riai. columns nau­do­ja­mas kaip vietos laikiklis.

Pa­žvel­ki­me į pavyzdį:

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

Gautas duomenų rėmelis atrodo taip:

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

Dabar pa­nau­do­si­me melt() ir trans­for­muo­si­me duomenų rėmelį į ilgą formatą:

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

Per­tvar­ky­tas duomenų rėmelis melted_df atrodo taip:

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

Re­zul­ta­tas – duomenų rėmelis, per­tvar­ky­tas į ilgą formatą. ID stulpelis buvo paliktas kaip iden­ti­fi­ka­to­rius, variable stulpelis yra tai, kas anksčiau buvo stulpelių pa­va­di­ni­mai (A ir B), o Value stulpelis yra ati­tin­ka­mi elementai. Dėlna.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ūks­ta­mas reikšmes duomenų rėmuose.

Api­brėž­ki­me naują duomenų rėmelį:

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

Duomenų rėmelis turi tokią 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

Dabar per­tvar­ky­si­me duomenų rėmelį naudodami melt():

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

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

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

Jei norite sužinoti, kaip ma­ni­pu­liuo­ti eilutėmis R kalboje, per­žiū­rė­ki­te mūsų skait­me­ni­nia­me vadove esančius R substring() ir R paste() pamokėles.

Go to Main Menu