Как транспонировать фрейм данных в R (с примерами)


Есть два распространенных метода, которые вы можете использовать для транспонирования фрейма данных в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.