Jak transponować ramkę danych w r (z przykładami)
Istnieją dwie popularne metody transpozycji ramki danych w języku R:
Metoda 1: Użyj podstawy R
#transpose data frame
t(df)
Metoda 2: Użyj data.table
library (data.table)
#transpose data frame
df_t <- transpose(df)
#redefine row and column names
rownames(df_t) <- colnames(df)
colnames(df_t) <- rownames(df)
Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce.
Metoda 1: Transponuj ramkę danych przy użyciu podstawy R
Załóżmy, że mamy następującą ramkę danych:
#create data frame df <- data. frame (A = c(1, 2, 3, 4, 5), B = c(6, 7, 8, 9, 10), C = c(11, 12, 13, 14, 15)) #define row names row. names (df) <- c('One', 'Two', 'Three', 'Four', 'Five') #view data frame df ABC One 1 6 11 Two 2 7 12 Three 3 8 13 Oven 4 9 14 Five 5 10 15
Możemy użyć funkcji R base t() do szybkiej transpozycji ramki danych:
#transpose data frame
t(df)
One Two Three Four Five
A 1 2 3 4 5
B 6 7 8 9 10
C 11 12 13 14 15
Wiersze i kolumny są teraz odwrócone.
Metoda 2: Transponuj ramkę danych za pomocą data.table
Załóżmy jeszcze raz, że mamy następującą ramkę danych:
#create data frame df <- data. frame (A = c(1, 2, 3, 4, 5), B = c(6, 7, 8, 9, 10), C = c(11, 12, 13, 14, 15)) #define row names row. names (df) <- c('One', 'Two', 'Three', 'Four', 'Five') #view data frame df ABC One 1 6 11 Two 2 7 12 Three 3 8 13 Oven 4 9 14 Five 5 10 15
Możemy użyć funkcji transpose() pakietu data.table, aby szybko transponować ramkę danych:
library (data.table) #transpose data frame df_t <- transpose(df) #redefine row and column names rownames(df_t) <- colnames(df) colnames(df_t) <- rownames(df) #display transposed data frame df_t One Two Three Four Five A 1 2 3 4 5 B 6 7 8 9 10 C 11 12 13 14 15
Wynikiem jest transponowana ramka danych z poprzedniego przykładu.
Uwaga : Metoda data.table będzie znacznie szybsza niż podstawowa metoda R, jeśli pracujesz z bardzo dużą ramką danych.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na ramkach danych w R:
Jak zastosować funkcję do każdego wiersza ramki danych w R
Jak dodać pustą kolumnę do ramki danych w R
Jak podzielić ramkę danych na podzbiór w R