列集

时间:2017-04-07 14:13:36

标签: r tidyr

我有来自在线调查的数据,其中受访者经历了一系列5个问题。 我工作的数据如下所示:

    P1 P2 P3 P4 P5  P1 P2 P3 P4 P5  P1 P2 P3 P4 P5
    1  2  3  4  5   1  2  3  4  5   1  2  3  4  5
    6  7  8  9  10  6  7  8  9  10  6  7  8  9  10

所需的输出是:

     P1 P2 P3 P4 P5  
     1  2  3  4  5
     6  7  8  9  10
     1  2  3  4  5
     6  7  8  9  10
     1  2  3  4  5
     6  7  8  9  10

我一直试图用图书馆tidyr来解决这个问题,但我无法理解如何应用它。 一些建议将非常有用。

1 个答案:

答案 0 :(得分:0)

其中一个解决方案可以是:

require(foreach)
require(dplyr)
require(magrittr)    

foreach(
  unique_name = unique(colnames(df)),
  .combine = 'bind_cols'
) %do% {

  df[grep(unique_name), colnames(df)] %>%
    unlist() %>%
    as.data.frame() %>%
    set_colnames(., unique_names)

}