Kako prenesti DataFrame v R

Kako Prenesti Dataframe V R



Prenos nabora podatkov je ena od takšnih operacij, ki preoblikuje podatke, da ustrezajo posebnim zahtevam analize. Prenos nabora podatkov vključuje obrnjene vrstice in stolpce nabora podatkov, kar ima za posledico nov nabor podatkov z zamenjanimi stolpci in vrsticami. R ponuja nekaj funkcij za prenos nabora podatkov. V tem članku bomo obravnavali različne metode prenosa za DataFrames v R.

Primer 1: Transponiranje DataFrame s funkcijo T() v R

Funkcija t() je vgrajena funkcija R, ki se uporablja za prenos DataFrame. Vendar pretvori DataFrame v matriko, tako da se vsak neštevilski stolpec pretvori v znakovne nize. Razmislite o naslednjem skriptu R za prenos DataFrame:







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(MojiPodatki)

Tukaj deklariramo vektor MyData in mu dodelimo data.frame(). Vstavimo vzorčne podatke, ki vsebujejo tri stolpce z vrednostmi znotraj funkcije data.frame(). Po tem uporabimo funkcijo “row.names()” in nastavimo imena vrstic za vrednosti “MyData” DataFrame. Končno prenesemo DataFrame »MyData« s funkcijo t().



Naslednji izhod prikazuje transpozicijo DataFrame, kjer imena vrstic izvirnega DataFrame postanejo imena stolpcev prenesenega DataFrame, imena stolpcev izvirnega DataFrame pa se pri prenosu izgubijo:







Primer 2: Transponiranje DataFrame s funkcijo Transpose() v R

Funkcijo transpose() iz paketa »data.table« lahko uporabite tudi za prenos DataFrame in vrne DataFrame. Zato se moramo prepričati, da je »data.table« nameščen v R. Če ga ne najdemo, ga lahko namestimo z naslednjim ukazom:

install.packages('data.table')

Zdaj lahko preprosto uvozimo paket »data.table« za dostop do funkcije transpose() v R za prenos DataFrame. Razmislite o naslednji kodi R, kjer je funkcija transpose() poklicana za prenos DataFrame:



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

Tukaj ustvarimo »df« DataFrame s tremi stolpci in petimi vrsticami, kjer vsak stolpec vsebuje zaporedje številk od 1 do 5, od 6 do 10 oziroma od 11 do 15. Poleg tega dodelimo imena vrstic DataFrame s funkcijo row.names(). Po tem natisnemo izvirni DataFrame na konzolo.

Izvirni DataFrame je prikazan na zaslonu tukaj:

Nato prestavimo izvirni »df« DataFrame tako, da zamenjamo vrstice in stolpce DataFrame.

knjižnica (data.table)

df_trans <- transpose(df)

imena vrstic (df_trans) <- imena stolpcev (df)

imena stolpcev (df_trans) <- imena vrstic (df)

df_trans

Za to najprej naložimo knjižnico »data.table«, ki nudi orodja za delo s tabelarnimi podatki v R. Nato se uporabi funkcija transpose() iz knjižnice »data.table«. Nastali transponirani DataFrame je dodeljen novi spremenljivki, ki je »df_t«. Po tem dodelimo imena stolpcev izvirnega DataFramea »df« kot imena vrstic prenesenemu DataFrameu »df_trans« s funkcijo rownames(). Nato se imena vrstic prvotnega podatkovnega okvira »df« dodelijo kot imena stolpcev prenesenemu podatkovnemu okvirju »df_trans« s funkcijo Colnames().

Tako je izvirni prenos DataFrame dosežen v izhodu. Predstavlja vsako celico v transponiranem DataFrameu, v kateri vsebuje enako vrednost kot ustrezna celica v izvirnem DataFrameu, vendar v drugačnem položaju zaradi prenosa.

Primer 3: Prenos DataFrame z uporabo funkcije Tidyr Library Gather() v R

Paket tidyr za R se lahko uporablja za prenos DataFrame. Ta metoda je uporabna, ko želimo DataFrame pretvoriti iz širokega v dolgi format in nato nazaj v široki format z zamenjanimi vrsticami in stolpci. Ponuja več funkcij za preoblikovanje in reorganizacijo podatkov. Pred tem moramo prenesti paket tidyr posebej z naslednjim ukazom:

install.packages('tidyr')

Oglejmo si naslednjo kodo R. Uporabljamo funkcijo gather() tega paketa za daljši prenos širokega okvira podatkov:

knjižnica (tidyr)

n = 10

tidy_df = data.frame(

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

urejen_df

Tukaj se »širok« ​​DataFrame pretvori v »dolg« DataFrame s pomočjo tidyrja. Najprej ustvarimo »tidy_df« DataFrame s tremi stolpci. Vsak od teh stolpcev ima 10 vrednosti.

Dolgi DataFrame je prikazan na naslednjem izhodnem zaslonu:

Nato posredujemo DataFrame »tidy_df« funkciji gather() s cevnim operaterjem »%>%«. Funkcija gather() iz tidyr se uporablja za pretvorbo »tidy_df« v dolg podatkovni okvir. Funkcija gather() sprejema vnose z imenom »Izpiti«, ki označuje nov stolpec za imena spremenljivk, ki so ustvarjena pri transformaciji. »Ocene« določa stolpec, v katerem so skupaj zbrane ocene »Izpit1_Ocene« in »Izpit2_Ocene«.

dolgo <- tidy_df %>%

zbrati (izpiti, ocene,
Izpit1_Ocene:Izpit2_Ocene)


dolga

Izhod prikaže konzoli dolg DataFrame, ki ima zdaj 'dolg' format s tremi stolpci:

Primer 4: Transponiranje DataFrame s funkcijo Pivot_Wider() v R

Naslednja napredna funkcija, ki jo uporabljamo za prenos DataFrame, je funkcija pivot_wider(). Pivot_wider() je funkcija iz paketa tidyr v R, ki nam omogoča, da 'dolg' DataFrame pretvorimo v 'širok' DataFrame. Funkcija sprejme tri glavne argumente, ki so obravnavani v naslednji kodi R:

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

Tukaj najprej naložimo paket tidyr s funkcijo library(). Nato smo v 'df' nastavili vzorčni DataFrame. DataFrame »df« ima tri stolpce, ki vsebujejo različne vrednosti. Vzorec DataFrame lahko vidite v naslednjem izhodu:

Po tem se funkcija pivot_wider() iz tidyrja uporabi za pretvorbo »df« v »df_wide«.

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

df_wide

Funkcija pivot_wider() tukaj sprejme tri argumente. Najprej je treba preoblikovati DataFrame »df«. Nato argument names_from nastavi ime stolpca, ki bo uporabljeno za nova imena spremenljivk. Končno argument values_from določa ime stolpca, ki bo uporabljeno za nove vrednosti.

Naslednji izhod predstavlja prenos dolgega DataFrame v širok DataFrame:

Zaključek

Uporabili smo različne načine za prenos DataFrame v R. Prvi primer je nastavljen z vgrajeno metodo t(). Vsi drugi primeri so potrebovali pakete za uvoz, da smo lahko uporabili njihove funkcije za prenos DataFrame. Vendar je najboljši način za uporabo odvisen od specifične situacije in strukture podatkov, s katerimi delate.