Kaip perkelti „DataFrame“ į R

Kaip Perkelti Dataframe I R



Duomenų rinkinio perkėlimas yra viena iš tokių operacijų, kurios metu duomenys reformuojami, kad atitiktų konkrečius analizės reikalavimus. Duomenų rinkinio perkėlimas apima apverstas duomenų rinkinio eilutes ir stulpelius, todėl sukuriamas naujas duomenų rinkinys su perjungtais stulpeliais ir eilutėmis. R pateikia kai kurias duomenų rinkinio perkėlimo funkcijas. Šiame straipsnyje apžvelgsime įvairius „DataFrames“ perkėlimo metodus R.

1 pavyzdys: perkelkite DataFrame naudodami T() funkciją R

Funkcija t() yra įmontuota R funkcija, naudojama duomenų rėmeliui perkelti. Tačiau jis konvertuoja DataFrame į matricą, todėl bet koks neskaitinis stulpelis paverčiamas simbolių eilėmis. Norėdami perkelti DataFrame, apsvarstykite šį R scenarijų:





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

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

eilutės.pavadinimai(Mano duomenys) = c('r1', 'r2', 'r3', 'r4', 'r5')

t (mano duomenys)

Čia deklaruojame MyData vektorių ir priskiriame jam data.frame(). Įterpiame pavyzdinius duomenis, kuriuose yra trys stulpeliai su reikšmėmis, esančiomis funkcijoje data.frame(). Po to mes naudojame funkciją 'row.names()' ir nustatome 'MyData' DataFrame reikšmių eilučių pavadinimus. Galiausiai perkeliame „MyData“ duomenų rėmelį naudodami funkciją t ().



Šioje išvestyje rodomas duomenų rėmelio perkėlimas, kai pradinio duomenų rėmelio eilučių pavadinimai tampa perkelto duomenų rėmelio stulpelių pavadinimais, o pradinio duomenų rėmelio stulpelių pavadinimai prarandami perkeliant:







2 pavyzdys: perkelkite DataFrame naudodami funkciją Transpose() R

Funkcija transpose() iš paketo „data.table“ taip pat gali būti naudojama „DataFrame“ perkėlimui ir ji grąžina „DataFrame“. Todėl turime įsitikinti, kad „data.table“ yra įdiegta R. Jei jos nerandame, galime ją įdiegti naudodami šią komandą:

install.packages('data.table')

Dabar galime lengvai importuoti paketą „data.table“, kad pasiektume „transpose()“ funkciją R, kad perkeltume „DataFrame“. Apsvarstykite šį R kodą, kuriame transponavimo () funkcija iškviečiama perkelti DataFrame:



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

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


eilutės.pavadinimai(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Čia sukuriame „df“ duomenų rėmelį su trimis stulpeliais ir penkiomis eilutėmis, kur kiekviename stulpelyje yra atitinkamai skaičių seka nuo 1 iki 5, 6 iki 10 ir 11 iki 15. Be to, „DataFrame“ eilučių pavadinimus priskiriame naudodami funkciją row.names(). Po to į konsolę atspausdiname originalų DataFrame.

Originalus DataFrame rodomas ekrane čia:

Tada perkeliame originalų „df“ duomenų rėmelį, perjungdami DataFrame eilutes ir stulpelius.

biblioteka (duomenys.lentelė)

df_trans <- transpose(df)

eilučių pavadinimai(df_trans) <- stulpelių pavadinimai(df)

stulpelių vardai(df_trans) <- eilučių pavadinimai(df)

df_trans

Tam pirmiausia įkeliame biblioteką „data.table“, kurioje yra įrankiai, skirti dirbti su lentelės duomenimis R. Tada naudojama funkcija transpose() iš „data.table“ bibliotekos. Gautas perkeltas DataFrame priskiriamas naujam kintamajam, kuris yra „df_t“. Po to pradinio „df“ DataFrame stulpelių pavadinimus priskiriame kaip eilučių pavadinimus perkeltam „df_trans“ duomenų rėmeliui, naudodami funkciją rownames (). Tada pradinio „df“ duomenų rėmelio eilučių pavadinimai priskiriami kaip stulpelių pavadinimai perkeltam „df_trans“ duomenų rėmeliui, naudojant funkciją colnames ().

Taigi išvestyje pasiekiamas originalus DataFrame perkėlimas. Tai reiškia kiekvieną perkelto duomenų rėmelio langelį, kuriame yra tokia pati reikšmė kaip ir atitinkamame pirminio duomenų rėmelio langelyje, tačiau dėl perkėlimo ji yra kitoje padėtyje.

3 pavyzdys: perkelkite DataFrame naudodami Tidyr Library Gather() funkciją R

„Tidyr“ paketas R gali būti naudojamas „DataFrame“ perkelti. Šis metodas yra naudingas, kai norime konvertuoti DataFrame iš plataus formato į ilgą formatą, o tada atgal į platų formatą su pakeistomis eilutėmis ir stulpeliais. Jame yra keletas funkcijų, skirtų duomenims transformuoti ir pertvarkyti. Prieš tai turime specialiai atsisiųsti tidyr paketą naudodami šią komandą:

install.packages('tidyr')

Panagrinėkime šį R kodą. Naudojame šio paketo funkciją collection () norėdami perkelti platų duomenų rėmelį ilgiau:

biblioteka (tvarkinga)

n = 10

tidy_df = data.frame(

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

tvarkingas_df

Čia „platus“ duomenų rėmelis konvertuojamas į „ilgą“ duomenų rėmelį naudojant tidyr. Pirmiausia sukuriame „tidy_df“ duomenų rėmelį su trimis stulpeliais. Kiekviename iš šių stulpelių yra 10 reikšmių.

Ilgas DataFrame rodomas šiame išvesties ekrane:

Tada perduodame 'tidy_df' DataFrame į rinkimo () funkciją su vamzdžio operatoriumi '%>%'. Funkcija collection() iš tidyr naudojama „tidy_df“ transformuoti į ilgą duomenų rėmelį. Funkcija rinkti () įveda įvestį pavadinimu „Egzaminai“, kuris nurodo naują stulpelį, kuriame yra transformacijos metu sukurti kintamųjų pavadinimai. „Pažymiai“ nurodo stulpelį, kuriame kartu surenkami „Exam1_Marks“ ir „Exam2_Marks“.

ilgas <- tvarkingas_df %>%

rinkti (egzaminai, pažymiai,
Egzaminas1_pažymiai:Egzaminas2_pažymiai)


ilgai

Išvestis rodo ilgą DataFrame į konsolę, kuri dabar turi 'ilgą' formatą su trimis stulpeliais:

4 pavyzdys: perkelkite DataFrame naudodami funkciją Pivot_Wider() R

Kita išplėstinė funkcija, kurią naudojame perkeldami DataFrame, yra funkcija pivot_wider(). Pivot_wider () yra funkcija iš tidyr paketo R, kuri leidžia mums paversti „ilgą“ duomenų rėmelį į „platų“ duomenų rėmelį. Funkcijai naudojami trys pagrindiniai argumentai, kurie aptariami šiame R kode:

biblioteka (tvarkinga)

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

Čia pirmiausia įkeliame tidyr paketą naudodami funkciją Library (). Tada mes nustatome pavyzdinį DataFrame į „df“. 'df' DataFrame turi tris stulpelius, kuriuose atitinkamai yra skirtingos reikšmės. „DataFrame“ pavyzdį galima pamatyti šioje išvestyje:

Po to funkcija pivot_wider() iš tidyr naudojama „df“ paversti „df_wide“.

df_wide <- pivot_wider(df, vardai_nuo = var, reikšmės_nuo = val)

df_wide

Funkcija pivot_wider() čia turi tris argumentus. Pirmiausia reikia transformuoti „df“ duomenų rėmelį. Tada argumentas names_from nustato stulpelio pavadinimą, kuris bus naudojamas naujiems kintamųjų pavadinimams. Galiausiai argumentas value_from nurodo stulpelio pavadinimą, kuris bus naudojamas naujoms reikšmėms.

Ši išvestis rodo ilgo duomenų rėmelio perkėlimą į platų duomenų rėmelį:

Išvada

Naudojome įvairius būdus, kaip perkelti DataFrame į R. Pirmasis pavyzdys yra nustatytas naudojant t() integruotą metodą. Visiems kitiems pavyzdžiams reikėjo importuoti paketus, kad galėtume naudoti jų funkcijas perkeldami „DataFrame“. Tačiau geriausias metodas priklauso nuo konkrečios situacijos ir duomenų struktūros, su kuria dirbate.