Kako prenijeti DataFrame u R

Kako Prenijeti Dataframe U R



Transponiranje skupa podataka je jedna takva operacija koja reformira podatke kako bi zadovoljili posebne zahtjeve analize. Transponiranje skupa podataka uključuje obrnute retke i stupce skupa podataka, što rezultira novim skupom podataka sa zamijenjenim stupcima i redcima. R pruža neke funkcije za transponiranje skupa podataka. U ovom ćemo članku pokriti različite metode transponiranja za DataFrames u R.

Primjer 1: Transponiranje DataFramea pomoću funkcije T() u R

Funkcija t() je ugrađena funkcija R koja se koristi za transponiranje DataFramea. Međutim, pretvara DataFrame u matricu, tako da se svaki nenumerički stupac transformira u znakovne nizove. Razmotrite sljedeću R skriptu za transponiranje DataFramea:







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

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

row.names(MyData) = c('r1','r2','r3','r4','r5')

t(Moji podaci)

Ovdje deklariramo vektor MyData i dodjeljujemo mu data.frame(). Umetnemo ogledne podatke koji sadrže tri stupca s vrijednostima unutar funkcije data.frame(). Nakon toga koristimo funkciju “row.names()” i postavljamo nazive redaka za vrijednosti DataFramea “MyData”. Konačno, transponiramo 'MyData' DataFrame pomoću funkcije t().



Sljedeći izlaz prikazuje transpoziciju DataFramea gdje nazivi redaka izvornog DataFramea postaju nazivi stupaca transponiranog DataFramea, a nazivi stupaca izvornog DataFramea gube se u transponiranju:







Primjer 2: Transponirajte DataFrame pomoću funkcije Transpose() u R

Funkcija transpose() iz paketa “data.table” također se može koristiti za transponiranje DataFramea i vraća DataFrame. Stoga moramo biti sigurni da je “data.table” instaliran u R. Ako nije pronađen tada, možemo ga instalirati sljedećom naredbom:

install.packages('data.table')

Sada možemo jednostavno uvesti paket 'data.table' za pristup funkciji transpose() u R za transponiranje DataFramea. Razmotrite sljedeći R kod gdje se funkcija transpose() poziva za transponiranje DataFramea:



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

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


row.names(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Ovdje stvaramo 'df' DataFrame s tri stupca i pet redaka gdje svaki stupac sadrži niz brojeva od 1 do 5, 6 do 10, odnosno od 11 do 15. Dodatno, dodjeljujemo nazive redaka DataFrame pomoću funkcije row.names(). Nakon toga ispisujemo originalni DataFrame na konzolu.

Izvorni DataFrame prikazan je na zaslonu ovdje:

Zatim transponiramo izvorni 'df' DataFrame mijenjanjem redaka i stupaca DataFramea.

biblioteka(podaci.tablica)

df_trans <- transponirati(df)

imena redaka (df_trans) <- imena stupaca (df)

imena stupaca (df_trans) <- imena redaka (df)

df_trans

Za ovo prvo učitavamo biblioteku 'data.table' koja pruža alate za rad s tabličnim podacima u R. Zatim se koristi funkcija transpose() iz biblioteke 'data.table'. Rezultirajući transponirani DataFrame dodjeljuje se novoj varijabli koja je 'df_t'. Nakon toga dodjeljujemo nazive stupaca izvornog 'df' DataFramea kao imena redaka transponiranom 'df_trans' DataFrameu pomoću funkcije rownames(). Zatim se nazivi redaka izvornog 'df' DataFramea dodjeljuju kao nazivi stupaca transponiranom 'df_trans' DataFrameu pomoću funkcije colnames().

Dakle, izvorna DataFrame transpozicija se postiže u izlazu. Predstavlja svaku ćeliju u transponiranom DataFrameu u kojem sadrži istu vrijednost kao odgovarajuća ćelija u izvornom DataFrameu, ali na drugom položaju zbog transpozicije.

Primjer 3: Transponiranje DataFramea pomoću funkcije Tidyr Library Gather() u R

Paket tidyr od R može se koristiti za transponiranje DataFramea. Ova metoda je korisna kada želimo pretvoriti DataFrame iz širokog u dugi format, a zatim natrag u široki format sa zamijenjenim redcima i stupcima. Omogućuje nekoliko funkcija za transformaciju i reorganizaciju podataka. Prije toga moramo preuzeti tidyr paket posebno pomoću sljedeće naredbe:

install.packages('tidyr')

Razmotrimo sljedeći R kod. Koristimo funkciju gather() ovog paketa za dulje transponiranje širokog DataFramea:

knjižnica (tidyr)

n = 10

uredan_df = data.frame(

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

uredan_df

Ovdje se 'široki' DataFrame pretvara u 'dugi' DataFrame pomoću tidyra. Prvo stvaramo 'tidy_df' DataFrame s tri stupca. Svaki od ovih stupaca ima 10 vrijednosti.

Dugački DataFrame prikazan je na sljedećem izlaznom ekranu:

Zatim prosljeđujemo “tidy_df” DataFrame funkciji gather() s operatorom cijevi “%>%”. Funkcija gather() iz tidyra koristi se za transformaciju 'tidy_df' u dugački DataFrame. Funkcija gather() uzima ulaze s nazivom 'Ispiti' koji označava novi stupac za držanje naziva varijabli koje su stvorene u transformaciji. “Ocjene” određuju stupac koji skuplja “Ocjene za ispit1” i “Ocjene za ispit2”.

dugo <- uredan_df %>%

skupiti (ispiti, ocjene,
Ispit1_Ocjene:Ispit2_Ocjene)


dugo

Izlaz prikazuje dugi DataFrame na konzoli koji sada ima 'dugi' format s tri stupca:

Primjer 4: Transponiranje DataFramea pomoću funkcije Pivot_Wider() u R-u

Sljedeća napredna funkcija koju koristimo za transponiranje DataFramea je funkcija pivot_wider(). Pivot_wider() je funkcija iz paketa tidyr u R-u koja nam omogućuje transformaciju 'dugačkog' DataFramea u 'široki' DataFrame. Funkcija uzima tri glavna argumenta o kojima se govori u sljedećem kodu R-a:

knjižnica (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

Ovdje prvo učitavamo paket tidyr pomoću funkcije library(). Zatim postavljamo ogledni DataFrame u 'df'. “df” DataFrame ima tri stupca koji sadrže različite vrijednosti, u skladu s tim. Uzorak DataFramea može se vidjeti u sljedećem izlazu:

Nakon toga, funkcija pivot_wider() iz tidyra koristi se za transformaciju 'df' u 'df_wide'.

df_wide <- pivot_wider(df, names_from = var, values_from = val)

df_široko

Funkcija pivot_wider() ovdje uzima tri argumenta. Prvo, potrebno je 'df' DataFrame transformirati. Zatim, argument names_from postavlja naziv stupca koji će se koristiti za nova imena varijabli. Konačno, argument values_from navodi naziv stupca koji će se koristiti za nove vrijednosti.

Sljedeći izlaz predstavlja transpoziciju dugog DataFramea u široki DataFrame:

Zaključak

Koristili smo različite načine za transponiranje DataFramea u R. Prvi primjer je postavljen pomoću ugrađene metode t(). Svi ostali primjeri trebali su pakete za uvoz kako bismo mogli koristiti njihove funkcije za prijenos DataFramea. Međutim, najbolja metoda ovisi o specifičnoj situaciji i strukturi podataka s kojima radite.