在R中组合两行

时间:2017-01-04 19:42:21

标签: r

我想根据第1列中的个别名称组合两行。
原始文件如下所示:

animal pnt step segments  V5  V6  V7  V8  V9 V10   
337   1    3      660   1   1   1   1  65   1   
337   2    3      660 220 118 223 182 217 205   
420   1    3      660  41  35  71  11  13  36  
420   2    3      660   2  31  19  46   2   2  
339   1    3      660   1   1   1   3  65   1  
339   2    3      660   3   3   3  50   3   3  
341   1    3      660   4   4   4   4   4   4  
341   2    3      660  15  85  62  77  89  71  
347   1    3      660  90  62  56  12  14  15  
347   2    3      660  58 338 190  55  60 170       

这个想法是有类似的东西:

animal V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13   
337 1 220 1 118 1 223 1 182 65 217 1 205   
420 41 2 35 31 71 19 11 46 13 2 36 2    
339 1 3 1 3 1 3 3 50 65 3 1 3    
341 4 15 4 85 4 62 4 77 4 89 4 71   
347 90 58 62 338 56 190 12 55 14 60 15 170

任何帮助?
谢谢!

1 个答案:

答案 0 :(得分:0)

另一种选择:

aggregate(df[,-(1:4)], list(animal=df[,1]), unlist)
#   animal V5.1 V5.2 V6.1 V6.2 V7.1 V7.2 V8.1 V8.2 V9.1 V9.2 V10.1 V10.2
# 1    337    1  220    1  118    1  223    1  182   65  217     1   205
# 2    339    1    3    1    3    1    3    3   50   65    3     1     3
# 3    341    4   15    4   85    4   62    4   77    4   89     4    71
# 4    347   90   58   62  338   56  190   12   55   14   60    15   170
# 5    420   41    2   35   31   71   19   11   46   13    2    36     2