当前位置:  开发笔记 > 编程语言 > 正文

需要将列转换为R中的行

如何解决《需要将列转换为R中的行》经验,为你挑选了1个好方法。

我的数据看起来像

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

提前致谢



1> akrun..:

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

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

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

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

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

或者另一个选择是melt/dcast.我们转换data.framematrix,melt以"长"格式,然后dcast它以"宽"格式.

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


由于"df1"的`names`将成为你的"r1",你可以跳过创建`m1`.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有