繁体   English   中英

需要将列转换为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) 

编辑:包括row.names参数在data.frame调用(从@Richard斯克里文的评论)

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

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

或者另一种选择是melt/dcast 我们将data.frame转换为matrixmelt为'long'格式,然后dcast其转换为'wide'格式。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM