Как транспонировать фрейм данных в 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

      ABC
One 1 6 11
Two 2 7 12
Three 3 8 13
Oven 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

      ABC
One 1 6 11
Two 2 7 12
Three 3 8 13
Oven 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *