首页 > 解决方案 > 将行转换为列 R

问题描述

我有一个包含 2 列的数据框:

a<-c(1, 3, 4, 6, 8.7, 9, 10, 12, 19.3, 20)
b<-c(10, 30, 40, 60, 87, 90, 100, 120, 190, 200)
df<-data.frame(a=a, b=b)
> df
      a   b
1   1.0  10
2   3.0  30
3   4.0  40
4   6.0  60
5   8.7  87
6   9.0  90
7  10.0 100
8  12.0 120
9  19.3 190
10 20.0 200

拜托,我的目标是有 1 行 10 列 a 和 10 列 b

预期结果

    a1 a2   ...   a10  b1 b2 ... b10
1   1.0 3.0 ...   20.0 10 30 ... 200

我试过t()了,但它没有给我想要的结果

标签: r

解决方案


试试unlistor as.data.frame(t(unlist(.))),取决于你需要什么,一个向量或一个数据框。

unlist(df)
# a1    a2    a3    a4    a5    a6    a7    a8    a9   a10    b1    b2    b3    b4    b5    b6    b7    b8    b9   b10 
# 1.0   3.0   4.0   6.0   8.7   9.0  10.0  12.0  19.3  20.0  10.0  30.0  40.0  60.0  87.0  90.0 100.0 120.0 190.0 200.0 
as.data.frame(t(unlist(df)))
#   a1 a2 a3 a4  a5 a6 a7 a8   a9 a10 b1 b2 b3 b4 b5 b6  b7  b8  b9 b10
# 1  1  3  4  6 8.7  9 10 12 19.3  20 10 30 40 60 87 90 100 120 190 200

推荐阅读