首页 > 解决方案 > 如何使用R转换列中的行

问题描述

我是 Re 的新手,有一个类似于此的数据集:

df <- data.frame(x = c(30, 1017, 1527, 1827,10496, 10794, 11270, 12261),
                 y = c(4.1, 2.6, 1.7, 1.1, 0.9, 1.1, 1.4, 3.1),
                 cod = c(3011, 3011, 3011, 3011, 3011, 3011, 3011, 2043),
                 label = c('start', 'start1', 'start2', 'start3', 'start4', 'start5', 'start6', 'start7'))

df

      x   y  cod  label
1    30 4.1 3011  start
2  1017 2.6 3011 start1
3  1527 1.7 3011 start2
4  1827 1.1 3011 start3
5 10496 0.9 3011 start4
6 10794 1.1 3011 start5
7 11270 1.4 3011 start6
8 12261 3.1 2043 start7

如何将标签列的行转换为数据集的列?

我需要类似的东西:

   start start1 start2 start3  start4  start5  start6  start7
   30.0 1017.0 1527.0 1827.0 10496.0 10794.0 11270.0 12261.0
    4.1    2.6    1.7    1.1     0.9     1.1     1.4     3.1
   3011.0 3011.0 3011.0 3011.0  3011.0  3011.0  3011.0  2043.0

标签: rdata-analysis

解决方案


我们可以用data.table::transpose

data.table::transpose(df, make.names = 'label')
#     start start1 start2 start3  start4  start5  start6  start7
#1   30.0 1017.0 1527.0 1827.0 10496.0 10794.0 11270.0 12261.0
#2    4.1    2.6    1.7    1.1     0.9     1.1     1.4     3.1
#3 3011.0 3011.0 3011.0 3011.0  3011.0  3011.0  3011.0  2043.0

推荐阅读