Есть два распространенных метода, которые вы можете использовать для транспонирования фрейма данных в R:
Метод 1: используйте базу R
#transpose data frame
t(df)
Способ 2: использовать 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)
В следующих примерах показано, как использовать каждый из этих методов на практике.
Метод 1: транспонирование фрейма данных с использованием базы R
Предположим, у нас есть следующий фрейм данных:
#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
A B C
One 1 6 11
Two 2 7 12
Three 3 8 13
Four 4 9 14
Five 5 10 15
Мы можем использовать функцию t() из базы R, чтобы быстро транспонировать фрейм данных:
#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
Теперь строки и столбцы меняются местами.
Метод 2: транспонирование фрейма данных с использованием data.table
Еще раз предположим, что у нас есть следующий фрейм данных:
#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
A B C
One 1 6 11
Two 2 7 12
Three 3 8 13
Four 4 9 14
Five 5 10 15
Мы можем использовать функцию transpose() из пакета 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)
#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
Результат соответствует транспонированному фрейму данных из предыдущего примера.
Примечание.Метод data.table будет намного быстрее, чем базовый R, если вы работаете с очень большим фреймом данных.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции с фреймами данных в R:
Как применить функцию к каждой строке фрейма данных в R
Как добавить пустой столбец во фрейм данных в R
Как подмножить фрейм данных в R