Мы можем перенести набор данных и преобразовать в data.frame
с первым столбцом в виде имен строк.
m1 <- t(df1)
d2 <- data.frame(r1= row.names(m1), m1, row.names=NULL)
EDIT: Включен row.names
аргумент в data.frame
вызова (от комментария @Richard Скривен в)
Или, как упоминалось @Ananda Mahto, мы можем использовать names(df1)
для создания столбца 'R1', тем самым пропуская создание объекта в глобальной среде.
d2 <- data.frame(r1=names(df1), t(df1))
Или другой вариант melt/dcast
. Мы преобразуем data.frame
в matrix
, melt
в формат «long», а затем dcast
в «широкий» формат.
library(reshape2)
dcast(melt(as.matrix(df1)), Var2~paste0('r', Var1), value.var='value')
Подсказка: транспонирование матрицы. –
Подсказка: .................... 't' ... для которой существуют как матричные, так и методы dataframe. –