2016-08-04 4 views
1

以下のようにIは、データフレーム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   

Iは最初の行のテキストがデータフレームを分割した後、垂直方向にマージすることを望みます。私の希望する出力は次のようになります。

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

多くのお客様のご協力に感謝いたします。ここで

答えて

2

は(あなたのデータがDFと呼ばれていると仮定した場合)dplyrを使用してソリューションです:

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に戻って一緒に結果をバインドしますが、各グループ上で任意の操作を行うことができます。

+0

コードがエラーを生成しています。 'error:is.list(x)はTRUEではありません。 ' – Santosh

+0

私は 'as_data_frame'の代わりに' as.data.frame'を使いました。 – Santosh

関連する問題