[英]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
转换为matrix
, melt
为'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.