DataFramen siirtäminen R:ssä

Dataframen Siirtaminen R Ssa



Tietojoukon transponointi on yksi tällainen toimenpide, joka muuttaa tiedot vastaamaan analyysin erityisvaatimuksia. Tietojoukon transponointi sisältää käänteisiä tietojoukon rivejä ja sarakkeita, mikä johtaa uuteen tietojoukkoon, jossa on vaihdettuja sarakkeita ja rivejä. R tarjoaa joitain toimintoja tietojoukon transponoimiseksi. Tässä artikkelissa käsittelemme R:n DataFrame-kehyksien erilaisia ​​transponointimenetelmiä.

Esimerkki 1: Transponoi DataFrame käyttämällä T()-funktiota R:ssä

Funktio t() on R:n sisäänrakennettu funktio, jota käytetään DataFrame-kehyksen transponointiin. Se kuitenkin muuntaa DataFramen matriisiksi, joten mikä tahansa ei-numeerinen sarake muunnetaan merkkijonoiksi. Harkitse seuraavaa R-komentosarjaa DataFramen transponoimiseksi:







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

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

rivi.nimet(Omat tiedot) = c('r1','r2','r3','r4','r5')

t(Omat tiedot)

Tässä määritetään MyData-vektori ja määritetään data.frame() sille. Lisäämme näytetiedot, jotka sisältävät kolme saraketta data.frame()-funktion arvoilla. Sen jälkeen käytämme 'row.names()'-funktiota ja asetamme rivien nimet 'MyData' DataFrame -tietokehyksen arvoille. Lopuksi transponoimme 'MyData' DataFrame -kehyksen käyttämällä t()-funktiota.



Seuraava tulos näyttää DataFramen transponoinnin, jossa alkuperäisen DataFramen rivinimistä tulee transponoidun DataFramen sarakkeiden nimet ja alkuperäisen DataFramen sarakkeiden nimet menetetään transponoinnissa:







Esimerkki 2: Transponoi DataFrame käyttämällä Transpose()-funktiota R:ssä

Transpose()-funktiota 'data.table'-paketista voidaan käyttää myös DataFrame-kehyksen transponointiin, ja se palauttaa DataFramen. Siksi meidän on varmistettava, että 'data.table' on asennettu R:hen. Jos sitä ei löydy, voimme asentaa sen seuraavalla komennolla:

install.packages('data.table')

Nyt voimme helposti tuoda 'data.table'-paketin käyttääksemme transpose()-funktiota R:ssä DataFramen transponoimiseksi. Harkitse seuraavaa R-koodia, jossa transpose()-funktio kutsutaan transponoimaan DataFrame:



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

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


rivinimet(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Täällä luomme 'df' DataFrame -kehyksen, jossa on kolme saraketta ja viisi riviä, joissa jokainen sarake sisältää numerosarjan 1 - 5, 6 - 10 ja 11 - 15. Lisäksi annamme DataFrame-rivien nimet row.names()-funktiolla. Tämän jälkeen tulostamme alkuperäisen DataFramen konsoliin.

Alkuperäinen DataFrame näkyy näytöllä tässä:

Seuraavaksi transponoimme alkuperäisen 'df' DataFramen vaihtamalla DataFramen rivejä ja sarakkeita.

kirjasto (data.taulukko)

df_trans <- transponoi(df)

rivinimet(df_trans) <- sarakkeenimet(df)

kolanimet(df_trans) <- rivinimet(df)

df_trans

Tätä varten lataamme ensin 'data.table'-kirjaston, joka tarjoaa työkalut taulukkotietojen käsittelyyn R:ssä. Sitten käytetään transpose()-funktiota 'data.table'-kirjastosta. Tuloksena oleva transponoitu DataFrame määritetään uudelle muuttujalle, joka on 'df_t'. Tämän jälkeen annamme alkuperäisen 'df' DataFrame -tietokehyksen sarakkeiden nimet rivinimiksi transponoidulle 'df_trans' DataFramelle käyttämällä rownames()-funktiota. Sitten alkuperäisen 'df' DataFramen rivien nimet määritetään sarakkeiden nimiksi transponoidulle 'df_trans' DataFramelle käyttämällä colnames()-funktiota.

Siten alkuperäinen DataFrame-transponointi saavutetaan lähdössä. Se edustaa jokaista solua transponoidussa DataFramessa, jossa se sisältää saman arvon kuin vastaava solu alkuperäisessä DataFramessa, mutta eri paikassa transponoinnin vuoksi.

Esimerkki 3: Transponoi DataFrame käyttämällä Tidyr Library Gather() -funktiota R:ssä

R:n tidyr-pakettia voidaan käyttää DataFrame-kehyksen transponointiin. Tämä menetelmä on hyödyllinen, kun haluamme muuntaa DataFrame-kehyksen laajasta muotoon pitkäksi ja sitten takaisin laajamuotoiseksi riveillä ja sarakkeilla vaihdetuilla. Se tarjoaa useita toimintoja tietojen muuntamiseen ja uudelleenjärjestelyyn. Ennen tätä meidän on ladattava tidyr-paketti erityisesti käyttämällä seuraavaa komentoa:

install.packages('tidyr')

Tarkastellaan seuraavaa R-koodia. Käytämme tämän paketin collection()-funktiota leveän DataFramen transponoimiseen pidempään:

kirjasto (siivous)

n = 10

tidy_df = data.frame(

ID = c(1:n),
Exam1_Marks = 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))

siisti_df

Tässä 'leveä' DataFrame muunnetaan 'pitkäksi' DataFrameksi käyttämällä tidyriä. Ensin luodaan 'tidy_df' DataFrame, jossa on kolme saraketta. Jokaisella näistä sarakkeista on 10 arvoa.

Pitkä DataFrame näkyy seuraavassa tulostusnäytössä:

Sitten välitämme 'tidy_df' DataFrame -funktiolle collection()-funktiolle pipe-operaattorilla '%>%'. Tidyr:n collection()-funktiota käytetään muuttamaan 'tidy_df' pitkäksi datakehykseksi. Kokoa()-funktio ottaa syötteitä 'Exams'-nimellä, joka ilmaisee uuden sarakkeen, joka sisältää muunnoksessa luotujen muuttujien nimet. 'Marks' määrittää sarakkeen, joka kokoaa 'Exam1_Marks' ja 'Exam2_Marks' yhteen.

pitkä <- tidy_df %>%

kerätä (kokeet, arvosanat,
Exam1_Marks:Exam2_Marks)


pitkä

Tulos näyttää pitkän DataFramen konsoliin, jossa on nyt 'pitkä' muoto kolmella sarakkeella:

Esimerkki 4: Transponoi DataFrame käyttämällä Pivot_Wider()-funktiota R:ssä

Seuraava lisätoiminto, jota käytämme DataFramen transponoimiseen, on pivot_wider()-funktio. Pivot_wider() on R:n tidyr-paketin funktio, jonka avulla voimme muuntaa 'pitkän' DataFramen 'leveäksi' datakehykseksi. Funktiolla on kolme pääargumenttia, joita käsitellään seuraavassa R:n koodissa:

kirjasto (siivous)

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

Täällä lataamme ensin tidyr-paketin kirjasto()-funktiolla. Sitten asetamme näytetietokehyksen 'df'. 'df' DataFrame sisältää kolme saraketta, jotka sisältävät vastaavasti erilaisia ​​arvoja. DataFrame-näyte näkyy seuraavassa lähdössä:

Sen jälkeen pivot_wider()-funktiota tidyristä käytetään muuttamaan 'df' muotoon 'df_wide'.

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

df_wide

Pivot_wider()-funktiolla on kolme argumenttia. Ensinnäkin 'df' DataFrame muunnetaan. Sitten argumentti names_from asettaa sarakkeen nimen, jota käytetään uusien muuttujien nimissä. Lopuksi argumentti Values_from määrittää uusille arvoille käytettävän sarakkeen nimen.

Seuraava tulos edustaa pitkän DataFramen transponointia leveäksi DataFrameksi:

Johtopäätös

Käytimme useita tapoja transponoida DataFrame R:ssä. Ensimmäinen esimerkki on asetettu sisäänrakennetulla menetelmällä t(). Kaikki muut esimerkit vaativat paketit tuotavaksi, jotta voimme käyttää niiden toimintoja DataFrame-transponoinnissa. Paras menetelmä riippuu kuitenkin tilanteesta ja tietorakenteesta, jonka kanssa työskentelet.