And­me­raa­mis­ti­kute tei­sen­da­mine R-keele funkt­sioo­niga melt() muudab erinevate nõuete täitmise liht­sa­maks. Paljud ana­lüü­si­mee­to­did, nagu li­neaar­sed mudelid ja ANOVA, eelis­ta­vad pi­ka­for­maa­dis andmeid, kuna need on loo­mu­li­ku­mad ja liht­sa­mini tõl­gen­da­ta­vad.

Milleks ka­su­ta­takse R-i funkt­siooni melt()?

R-i funkt­sioon melt() kuulub paketti reshape2 ja seda ka­su­ta­takse and­me­raa­mis­tike üm­ber­st­ruk­tu­ree­ri­miseks, eelkõige nende tei­sen­da­miseks laia for­maa­dist pikasse formaati. Laias formaadis on muutujad or­ga­ni­see­ri­tud eraldi veer­gu­desse, samas kui pikk formaat pakub paremat kuvamist ana­lüü­side ja vi­sua­li­see­ri­miste jaoks.

R-i melt() funkt­sioon on andmete tei­sen­da­miseks hä­da­va­ja­lik vahend. See on eriti oluline juhul, kui teave on kät­te­saa­dav ainult laia formaadis, kuid teatud analüüsid või graafikud nõuavad pikka formaati. See andmete üm­ber­st­ruk­tu­ree­ri­mise võimalus suurendab and­me­raa­mis­ti­kute paind­lik­kust ja võimaldab op­ti­maal­selt kasutada erinevaid R-i ana­lüü­si­va­hen­deid ja vi­sua­li­see­ri­mis­raa­ma­tu­ko­gusid.

Milline on R-i funkt­siooni melt() süntaks?

R-i funkt­siooni melt() saab kohandada erinevate ar­gu­men­tide abil.

melt(data.frame, na.rm = FALSE, value.name = "name", id.vars = 'columns')
R
  • data.frame: See viitab and­me­raa­mile, mida soovite ümber struk­tu­ree­rida
  • na.rm: Va­li­ku­line argument, mille vaikimisi väärtus on FALSE
  • value.name: See va­li­ku­line argument võimaldab teil nimetada veeru, mis sisaldab üm­ber­st­ruk­tu­ree­ri­tud muutujate väärtusi uues and­me­ko­gu­mis
  • id.vars: Va­li­ku­line argument, mis näitab, millised veerud tuleks iden­ti­fi­kaa­to­ri­tena säilitada. columns ka­su­ta­takse asen­dus­mär­gina.

Vaatame ühte näidet:

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

Saadud and­me­raa­mis­tik näeb välja järgmine:

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

Nüüd kasutame melt() ja tei­sen­dame and­me­raa­mis­tiku pikaks for­maa­diks:

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

Üm­ber­st­ruk­tu­ree­ri­tud and­me­raa­mis­tik melted_df näeb välja järgmine:

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

Tu­le­mu­seks on and­me­raa­mis­tik, mis on ümber struk­tu­ree­ri­tud pikaks for­maa­diks. ID veerg säiliti iden­ti­fi­kaa­to­rina, variable veerg sisaldab vara­semaid vee­ru­ni­me­sid (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 and­me­raami­des saab hõlpsasti eemaldada valikuga na.rm=True.

Mää­rat­leme uue and­me­raa­mis­tiku:

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

Andmeraam on järgmise kujuga:

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

Nüüd struk­tu­ree­rime and­me­raa­mis­tiku ümber, kasutades melt():

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

Uus and­me­raa­mis­tik melted_df on nüüd pikk formaat ilma NA väär­tu­seta:

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

Kui soovite õppida, kuidas R-is stringe ma­ni­pu­lee­rida, vaadake meie di­gi­taal­ses juhendis R substring() ja R paste() õpetusi.

Go to Main Menu