Kuidas andmeraami R-s üle kanda

Kuidas Andmeraami R S Ule Kanda



Andmestiku ülekandmine on üks selline toiming, mis muudab andmed analüüsi konkreetsete nõuete täitmiseks. Andmestiku ülekandmine hõlmab andmestiku ridade ja veergude ümberpööramist, mille tulemuseks on uus vahetatud veergude ja ridadega andmekogum. R pakub andmestiku ülekandmiseks mõningaid funktsioone. Selles artiklis käsitleme R-i DataFrames'i erinevaid transponeerimismeetodeid.

Näide 1: Transponeerige DataFrame, kasutades R-i funktsiooni T().

Funktsioon t() on R-i sisseehitatud funktsioon, mida kasutatakse DataFrame'i transponeerimiseks. Kuid see teisendab DataFrame'i maatriksiks, nii et iga mittenumbriline veerg teisendatakse märgistringideks. DataFrame'i transponeerimiseks kaaluge järgmist R-skripti:







MyData = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

rida.nimed(MyData) = c('r1', 'r2', 'r3', 'r4', 'r5')

t(Minuandmed)

Siin deklareerime MyData vektori ja omistame sellele data.frame(). Sisestame näidisandmed, mis sisaldavad funktsiooni data.frame() väärtustega kolme veergu. Pärast seda kasutame funktsiooni 'row.names()' ja määrame 'MyData' DataFrame'i väärtuste ridade nimed. Lõpuks transponeerime 'MyData' DataFrame'i, kasutades funktsiooni t().



Järgmine väljund näitab DataFrame'i ümberpaigutamist, kus algse DataFrame'i reanimedest saavad ülevõetud DataFrame'i veerunimed ja algse DataFrame'i veerunimed lähevad transponeerimisel kaotsi:







Näide 2: Transponeerige DataFrame, kasutades R-i funktsiooni Transpose().

Funktsiooni transpose() paketist data.table saab kasutada ka DataFrame'i transponeerimiseks ja see tagastab DataFrame'i. Seetõttu peame veenduma, et 'data.table' on installitud R-i. Kui seda ei leita, saame selle installida järgmise käsuga:

install.packages('data.table')

Nüüd saame hõlpsasti importida paketi 'data.table', et pääseda juurde funktsioonile transpose() R-is ja DataFrame'i üle kanda. Mõelge järgmisele R-koodile, kus DataFrame'i transponeerimiseks kutsutakse funktsioon transpone():



df <- data.frame(A = c(1:5),

B = c(6:10),
C = c(11:15))


rida.nimed(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Siin loome kolme veeru ja viie reaga 'df' DataFrame'i, kus iga veerg sisaldab numbrite jada vastavalt 1 kuni 5, 6 kuni 10 ja 11 kuni 15. Lisaks määrame DataFrame'i ridade nimed funktsiooni row.names() abil. Pärast seda prindime konsooli esialgse DataFrame'i.

Algne DataFrame kuvatakse ekraanil siin:

Järgmisena transponeerime algse 'df' DataFrame'i, vahetades DataFrame'i ridu ja veerge.

raamatukogu(andmed.tabel)

df_trans <- transpose(df)

reanimed(df_trans) <- veergude nimed(df)

veergude nimed(df_trans) <- reanimed(df)

df_trans

Selleks laadime esmalt teegi “data.table”, mis pakub tööriistu R-i tabeliandmetega töötamiseks. Seejärel kasutatakse teegi “data.table” funktsiooni transpose(). Saadud transponeeritud DataFrame määratakse uuele muutujale, milleks on 'df_t'. Pärast seda määrame funktsiooni rownames() abil transponeeritud 'df_trans' DataFrame'i ridade nimedena algse 'df' DataFrame'i veerunimed. Seejärel määratakse algse 'df' DataFrame'i reanimed ülekantud 'df_trans' DataFrame'i veerunimedena, kasutades funktsiooni colnames().

Seega saavutatakse väljundis algne DataFrame'i transpositsioon. See esindab iga lahtrit transponeeritud DataFrame'is, milles see sisaldab sama väärtust kui algse DataFrame'i vastav lahter, kuid on transponeerimise tõttu erinevas positsioonis.

Näide 3: Transponeerige DataFrame, kasutades Tidyr Library Gather() funktsiooni R-is

R-i tidyr-paketti saab kasutada DataFrame'i transponeerimiseks. See meetod on kasulik, kui tahame teisendada DataFrame'i laiformaadist pikaks ja seejärel tagasi laiformaadiks koos vahetatud ridade ja veergudega. See pakub mitmeid funktsioone andmete teisendamiseks ja ümberkorraldamiseks. Enne seda peame spetsiaalselt alla laadima paketi tidyr, kasutades järgmist käsku:

install.packages('tidyr')

Vaatleme järgmist R-koodi. Laia DataFrame'i pikemaks transponeerimiseks kasutame selle paketi funktsiooni collection().

raamatukogu (tidyr)

n = 10

tidy_df = data.frame(

ID = c(1:n),
Eksam1_punktid = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Exam2_Marks = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Exam3_Marks = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))

korras_df

Siin teisendatakse 'lai' DataFrame 'pikaks' DataFrame'iks, kasutades tidyr. Esiteks loome kolme veeruga andmeraami 'tidy_df'. Igas veerus on 10 väärtust.

Pikka DataFrame'i kuvatakse järgmisel väljundekraanil:

Seejärel edastame 'tidy_df' DataFrame'i kogumis()-funktsioonile toruoperaatoriga '%>%'. Tidyr'i funktsiooni collection() kasutatakse 'tidy_df' teisendamiseks pikaks andmeraamiks. Funktsioon collection() võtab sisendeid nimega „Eksamid”, mis näitab uut veergu, mis sisaldab teisenduses loodud muutujate nimesid. 'Marks' määrab veeru, mis koondab 'Exam1_Marks' ja 'Exam2_Marks'.

pikk <- tidy_df %>%

koguma (eksamid, hinded,
Exam1_Marks:Exam2_Marks)


pikk

Väljund kuvab pika DataFrame'i konsooli, millel on nüüd kolme veeruga 'pikk' vorming:

Näide 4: Transponeerige DataFrame, kasutades R-i funktsiooni Pivot_Wider().

Järgmine täiustatud funktsioon, mida me DataFrame'i transponeerimiseks kasutame, on funktsioon pivot_wider(). Pivot_wider() on R-i paketi tidyr funktsioon, mis võimaldab meil muuta 'pika' andmeraami 'laiaks' andmeraamiks. Funktsioonil on kolm peamist argumenti, mida arutatakse järgmises R-koodis:

raamatukogu (tidyr)

df <- data.frame(

id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
val = c(4, 5, 6, 7, 8, 9)


)

df

Siin laadime esmalt paketi tidyr, kasutades funktsiooni teek(). Seejärel määrame näidis DataFrame'i väärtuseks 'df'. DataFrame'is 'df' on kolm veergu, mis sisaldavad vastavalt erinevaid väärtusi. Näidis DataFrame on näha järgmises väljundis:

Pärast seda kasutatakse tidyr funktsiooni pivot_wider(), et teisendada 'df' väärtuseks 'df_wide'.

df_wide <- pivot_wider(df, nimed_alates = vari, väärtused_alates = val)

df_wide

Funktsioon pivot_wider() võtab siin kolm argumenti. Esiteks on teisendamiseks vaja 'df' DataFrame'i. Seejärel määrab argument names_from veeru nime, mida kasutatakse uute muutujate nimede jaoks. Lõpuks määrab argument value_from uute väärtuste jaoks kasutatava veeru nime.

Järgmine väljund esindab pika DataFrame'i ümberpaigutamist laiasse DataFrame'i:

Järeldus

Kasutasime R-s DataFrame'i ülekandmiseks erinevaid viise. Esimene näide on seatud sisseehitatud meetodiga t(). Kõik teised näited vajasid pakette importimist, et saaksime kasutada nende funktsioone DataFrame'i ülevõtmisel. Parim kasutatav meetod sõltub aga konkreetsest olukorrast ja andmestruktuurist, millega töötate.