需要将列转换为 R 中的行

Need to convert columns to rows in R

我的数据看起来像

a     b     c
1     5     4
3     6     1
2     5     3

我想将其转换为将所有列转换为行,并希望得到类似

的输出
r1       r2     r3     r4
a        1       3      2
b        5       6      5
c        4       1      3

提前致谢

我们可以转置数据集并转换为 data.frame,第一列作为行名。

m1 <- t(df1)
d2 <- data.frame(r1= row.names(m1), m1, row.names=NULL) 

编辑:在 data.frame 调用中包含 row.names 参数(来自@Richard Scriven 的评论)

或者如@Ananda Mahto 所述,我们可以使用 names(df1) 创建 'r1' 列,从而跳过在全局环境中创建对象。

d2 <- data.frame(r1=names(df1), t(df1))

或者另一个选项是 melt/dcast。我们将 data.frame 转换为 matrix,将 melt 转换为 'long' 格式,然后将 dcast 转换为 'wide' 格式。

library(reshape2)
dcast(melt(as.matrix(df1)), Var2~paste0('r', Var1), value.var='value')