Come trasporre il DataFrame in R

Come Trasporre Il Dataframe In R



La trasposizione di un set di dati è una di queste operazioni che riforma i dati per soddisfare i requisiti particolari dell'analisi. La trasposizione di un set di dati comporta l'inversione delle righe e delle colonne del set di dati, generando un nuovo set di dati con colonne e righe scambiate. R fornisce alcune funzioni per trasporre un set di dati. In questo articolo tratteremo i vari metodi di trasposizione per DataFrame in R.

Esempio 1: trasporre il DataFrame utilizzando la funzione T() in R

La funzione t() è una funzione incorporata di R che viene utilizzata per trasporre un DataFrame. Tuttavia, converte il DataFrame in una matrice, quindi qualsiasi colonna non numerica viene trasformata in stringhe di caratteri. Considera il seguente script R per trasporre il DataFrame:







I miei dati = 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(I miei dati)

Qui dichiariamo il vettore MyData e gli assegniamo data.frame(). Inseriamo i dati di esempio che contengono tre colonne con i valori all'interno della funzione data.frame(). Successivamente, usiamo la funzione 'row.names ()' e impostiamo i nomi delle righe per i valori del DataFrame 'MyData'. Infine, trasponiamo il DataFrame 'MyData' utilizzando la funzione t().



L'output seguente mostra la trasposizione del DataFrame in cui i nomi delle righe del DataFrame originale diventano i nomi delle colonne del DataFrame trasposto e i nomi delle colonne del DataFrame originale vengono persi nella trasposizione:







Esempio 2: trasporre il DataFrame utilizzando la funzione Transpose() in R

La funzione transpose() dal pacchetto 'data.table' può essere utilizzata anche per trasporre un DataFrame e restituisce un DataFrame. Pertanto, dobbiamo assicurarci che 'data.table' sia installato in R. Se non viene trovato, possiamo installarlo con il seguente comando:

install.packages('data.table')

Ora possiamo facilmente importare il pacchetto 'data.table' per accedere alla funzione transpose() in R per trasporre il DataFrame. Considera il seguente codice R in cui viene chiamata la funzione transpose() per trasporre il DataFrame:



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

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


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

df

Qui, creiamo il DataFrame 'df' con tre colonne e cinque righe in cui ogni colonna contiene una sequenza di numeri rispettivamente da 1 a 5, da 6 a 10 e da 11 a 15. Inoltre, assegniamo i nomi delle righe DataFrame utilizzando la funzione row.names(). Successivamente, stampiamo il DataFrame originale sulla console.

Il DataFrame originale è mostrato sullo schermo qui:

Successivamente, trasponiamo il DataFrame 'df' originale scambiando le righe e le colonne del DataFrame.

libreria(data.table)

df_trans <- transpose(df)

rownames(df_trans) <- colnames(df)

colnames(df_trans) <- rownames(df)

df_trans

Per questo, prima carichiamo la libreria 'data.table' che fornisce gli strumenti per lavorare con i dati tabulari in R. Quindi, la funzione transpose() viene utilizzata dalla libreria 'data.table'. Il DataFrame trasposto risultante viene assegnato a una nuova variabile che è 'df_t'. Successivamente, assegniamo i nomi delle colonne del DataFrame 'df' originale come nomi di riga al DataFrame 'df_trans' trasposto utilizzando la funzione rownames(). Quindi, i nomi di riga del DataFrame 'df' originale vengono assegnati come nomi di colonna al DataFrame 'df_trans' trasposto utilizzando la funzione colnames().

Pertanto, la trasposizione DataFrame originale viene ottenuta nell'output. Rappresenta ogni cella nel DataFrame trasposto in cui contiene lo stesso valore della cella corrispondente nel DataFrame originale ma in una posizione diversa a causa della trasposizione.

Esempio 3: Trasporre il DataFrame utilizzando la funzione Tidyr Library Gather() in R

Il pacchetto tidyr di R può essere utilizzato per trasporre un DataFrame. Questo metodo è utile quando si desidera convertire un DataFrame dal formato wide al formato long e quindi di nuovo al formato wide con righe e colonne scambiate. Fornisce diverse funzioni per trasformare e riorganizzare i dati. Prima, dobbiamo scaricare il pacchetto tidyr specificatamente usando il seguente comando:

install.packages('tidyr')

Consideriamo il seguente codice R. Usiamo la funzione collect() di questo pacchetto per trasporre più a lungo l'ampio DataFrame:

biblioteca (ordinata)

n = 10

file_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))

ordinato_df

Qui, un DataFrame 'ampio' viene convertito in un DataFrame 'lungo' usando tidyr. Innanzitutto, creiamo un DataFrame 'tidy_df' con tre colonne. Ognuna di queste colonne ha 10 valori.

Il DataFrame lungo è mostrato nella seguente schermata di output:

Quindi, passiamo il DataFrame 'tidy_df' alla funzione collect() con l'operatore pipe '%>%'. La funzione collect() di tidyr viene utilizzata per trasformare 'tidy_df' in un lungo DataFrame. La funzione collect() accetta input con il nome 'Esami' che indica una nuova colonna per contenere i nomi delle variabili creati nella trasformazione. “Voti” specifica la colonna che raggruppa “Voti_Esame1” e “Voti_Esame2”.

lungo <- ordinato_df %>%

raccogliere (esami, voti,
Esame1_Voti:Esame2_Voti)


lungo

L'output mostra il DataFrame lungo alla console che ora ha un formato 'lungo' con tre colonne:

Esempio 4: trasporre il DataFrame utilizzando la funzione Pivot_Wider() in R

La prossima funzione avanzata che usiamo per trasporre il DataFrame è la funzione pivot_wider(). Il pivot_wider() è una funzione del pacchetto tidyr in R che ci permette di trasformare un DataFrame “lungo” in un DataFrame “ampio”. La funzione prende tre argomenti principali che sono discussi nel seguente codice di R:

biblioteca (ordinata)

df <- data.frame(

id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
valore = c(4, 5, 6, 7, 8, 9)


)

df

Qui, per prima cosa carichiamo il pacchetto tidyr usando la funzione library(). Quindi, impostiamo il DataFrame di esempio in 'df'. Il DataFrame 'df' ha tre colonne che contengono valori diversi, di conseguenza. Il DataFrame di esempio può essere visualizzato nel seguente output:

Successivamente, la funzione pivot_wider() di tidyr viene utilizzata per trasformare 'df' in 'df_wide'.

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

df_wide

La funzione pivot_wider() accetta tre argomenti qui. Innanzitutto, è necessario trasformare il DataFrame 'df'. Quindi, l'argomento names_from imposta il nome della colonna da utilizzare per i nuovi nomi di variabile. Infine, l'argomento values_from specifica il nome della colonna da utilizzare per i nuovi valori.

Il seguente output rappresenta la trasposizione del DataFrame lungo nel DataFrame ampio:

Conclusione

Abbiamo usato vari modi per trasporre il DataFrame in R. Il primo esempio è impostato con il metodo integrato t(). Tutti gli altri esempi avevano bisogno dei pacchetti da importare in modo da poter utilizzare le loro funzioni per la trasposizione di DataFrame. Tuttavia, il metodo migliore da utilizzare dipende dalla situazione specifica e dalla struttura dei dati con cui si sta lavorando.