按相同的值/文本拆分数据框,然后垂直合并

时间:2016-08-04 21:55:19

标签: r

我的数据框df如下:

 df$x1    df$x2     df$x3    df$x4     df$x5    df$x6          
 Acti     Acti     Arthrex  Arthrex    Aflac    Aflac     
  4         5        3         1        2         5
  1         3        5         2        1         4        

我希望在第一行中按文本拆分数据框,然后垂直合并。我想要的输出如下:

 df$x1    df$x2           
 Acti     Acti         
  4         5     
  1         3     
 Arthrex  Arthrex
  3         1
  5         2
 Aflac    Aflac
  2         5
  1         4 

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

这是使用dplyr的解决方案(假设您的数据名为df):

library(dplyr)

t(df) %>% # transpose the data so that the first row is now the first col
  as_data_frame() %>% # convert back to data.frame from matrix
  group_by(V1) %>% # group the data by the first column
  do(as_data_frame(t(.))) # transpose each group back to the correct orientation

dplyr::do允许您对每个组执行任意操作,然后行将结果重新绑定到data.frame中。