Cum se transpune DataFrame în R

Cum Se Transpune Dataframe In R



Transpunerea unui set de date este o astfel de operațiune care reformează datele pentru a îndeplini cerințele specifice ale analizei. Transpunerea unui set de date implică rânduri și coloane inversate ale setului de date, rezultând un nou set de date cu coloane și rânduri schimbate. R oferă unele funcții pentru a transpune un set de date. În acest articol, vom acoperi diferitele metode de transpunere pentru DataFrames în R.

Exemplul 1: Transpuneți Cadrul de date folosind funcția T() din R

Funcția t() este o funcție încorporată a lui R care este utilizată pentru a transpune un DataFrame. Cu toate acestea, convertește DataFrame într-o matrice, astfel încât orice coloană non-numerică este transformată în șiruri de caractere. Luați în considerare următorul script R pentru a transpune 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(Datele mele)

Aici, declarăm vectorul MyData și îi atribuim data.frame() . Inserăm datele eșantion care conține trei coloane cu valorile din funcția data.frame(). După aceea, folosim funcția „row.names()” și setăm numele rândurilor pentru valorile DataFrame-ului „MyData”. În cele din urmă, transpunem cadrul de date „MyData” folosind funcția t().



Următoarea ieșire arată transpunerea DataFrame-ului în care numele rândurilor DataFrame-ului original devin numele coloanelor DataFrame-ului transpus, iar numele coloanelor DataFrame-ului original se pierd în transpunere:







Exemplul 2: transpuneți DataFrame folosind funcția Transpose() din R

Funcția transpose() din pachetul „data.table” poate fi folosită și pentru a transpune un DataFrame și returnează un DataFrame. Prin urmare, trebuie să ne asigurăm că „data.table” este instalat în R. Dacă nu este găsit atunci, îl putem instala cu următoarea comandă:

install.packages ('data.table')

Acum, putem importa cu ușurință pachetul „data.table” pentru a accesa funcția transpose() în R pentru a transpune DataFrame. Luați în considerare următorul cod R în care funcția transpose() este apelată pentru a transpune 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

Aici, creăm DataFrame „df” cu trei coloane și cinci rânduri în care fiecare coloană conține o secvență de numere de la 1 la 5, de la 6 la 10 și, respectiv, de la 11 la 15. În plus, atribuim nume de rând DataFrame folosind funcția row.names(). După aceea, imprimăm DataFrame-ul original pe consolă.

DataFrame original este afișat pe ecran aici:

Apoi, transpunem DataFrame-ul original „df” prin comutarea rândurilor și coloanelor DataFrame-ului.

bibliotecă (data.table)

df_trans <- transpose(df)

rownames(df_trans) <- colnames(df)

colnames(df_trans) <- rownames(df)

df_trans

Pentru aceasta, încărcăm mai întâi biblioteca „data.table” care oferă instrumentele pentru a lucra cu datele tabulare din R. Apoi, funcția transpose() este utilizată din biblioteca „data.table”. DataFrame-ul transpus rezultat este atribuit unei noi variabile care este „df_t”. După aceea, atribuim numele coloanelor DataFrame-ului original „df” ca nume de rând pentru DataFrame-ului „df_trans” transpus folosind funcția rownames(). Apoi, numele de rând ale cadrului de date „df” original sunt atribuite ca nume de coloană cadrului de date „df_trans” transpus folosind funcția colnames().

Astfel, transpunerea originală DataFrame este realizată în ieșire. Reprezintă fiecare celulă din DataFrame transpus în care conține aceeași valoare ca celula corespunzătoare din DataFrame original, dar într-o poziție diferită din cauza transpunerii.

Exemplul 3: Transpuneți DataFrame utilizând funcția Tidyr Library Gather() în R

Pachetul tidyr al lui R poate fi folosit pentru a transpune un DataFrame. Această metodă este utilă atunci când dorim să convertim un DataFrame din format larg în format lung și apoi înapoi în format larg cu rânduri și coloane schimbate. Acesta oferă mai multe funcții pentru a transforma și reorganiza datele. Înainte, trebuie să descarcăm pachetul tidyr folosind următoarea comandă:

install.packages('tidyr')

Să luăm în considerare următorul cod R. Folosim funcția gather() a acestui pachet pentru a transpune mai mult DataFrame-ul larg:

bibliotecă (în ordine)

n = 10

tidy_df = data.frame(

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

tidy_df

Aici, un DataFrame „larg” este convertit într-un DataFrame „lung” folosind tidyr. Mai întâi, creăm un DataFrame „tidy_df” cu trei coloane. Fiecare dintre aceste coloane are 10 valori.

DataFrame lung este afișat în următorul ecran de ieșire:

Apoi, trecem DataFrame „tidy_df” la funcția gather() cu operatorul pipe „%>%”. Funcția gather() de la tidyr este folosită pentru a transforma „tidy_df” într-un DataFrame lung. Funcția gather() preia intrări cu numele „Examene”, care indică o nouă coloană pentru a păstra numele variabilelor care sunt create în transformare. „Marks” specifică coloana care adună „Exam1_Marks” și „Exam2_Marks” împreună.

lung <- tidy_df %>%

aduna (examene, note,
Exam1_Marks:Exam2_Marks)


lung

Ieșirea afișează DataFrame lung pe consolă, care are acum un format „lung” cu trei coloane:

Exemplul 4: transpuneți DataFrame folosind funcția Pivot_Wider() în R

Următoarea funcție avansată pe care o folosim pentru a transpune DataFrame este funcția pivot_wider(). Pivot_wider() este o funcție din pachetul tidyr din R care ne permite să transformăm un DataFrame „lung” într-un DataFrame „larg”. Funcția ia trei argumente principale care sunt discutate în următorul cod al lui R:

bibliotecă (în ordine)

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

Aici, încărcăm mai întâi pachetul tidyr folosind funcția library(). Apoi, setăm exemplul DataFrame în „df”. DataFrame „df” are trei coloane care conțin valori diferite, în consecință. Exemplul DataFrame poate fi văzut în următoarea ieșire:

După aceea, funcția pivot_wider() de la tidyr este folosită pentru a transforma „df” în „df_wide”.

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

df_wide

Funcția pivot_wider() preia trei argumente aici. În primul rând, este nevoie de „df” DataFrame pentru a fi transformat. Apoi, argumentul names_from setează numele coloanei care va fi folosit pentru noile nume de variabile. În cele din urmă, argumentul values_from specifică numele coloanei care va fi folosit pentru noile valori.

Următoarea ieșire reprezintă transpunerea DataFrame-ului lung în DataFrame larg:

Concluzie

Am folosit diverse moduri de a transpune DataFrame în R. Primul exemplu este setat cu metoda încorporată t(). Toate celelalte exemple au avut nevoie de pachete pentru a fi importate, astfel încât să le putem folosi funcțiile pentru transpunerea DataFrame. Cu toate acestea, cea mai bună metodă de utilizat depinde de situația specifică și de structura datelor cu care lucrați.