2017-03-11 5 views
0

私は以下のテーブルDT-1を持っています。テーブルからdata.tableの異なるカラム値を組み合わせて、別のテーブルのロー値を形成する

1 ABC XYZ 
2 XYZ QRT 
3 QRT RWQ 
4 RWQ OIP 
5 OIP KIJ 
6 WET ERT 
7 ERT YUP 
8 YUP TIP 
9 TIP IUR 
10 IUR ETY 
11 QRT ERT 
12 RWQ YUP 
13 XYZ QRT 
14 QRT RWQ 
15 YUP 

2テーブルの1-5が形成されている行:列が異なる状態私は下記のように行テーブル・ルック内の別のテーブルDT-2を形成したい

id col1 col2 col3 col4 col5 col6 
qw-1 ABC XYZ QRT RWQ OIP KIJ 
qw-2 WET ERT YUP TIP IUR ETY 
qw-3 QRT ERT RWQ YUP 0  0 
qw-4 XYZ QRT RWQ 0 0  0 
qw-5 YUP 0  0  0  0  0 

を表します第1表の第1列から。同様に、第2表の行6-10,11-12,13-14,&15は、表1の第2、第3、第4、第&行第5行から形成される。

data.tableメソッドまたは他のRそれを行うパッケージ?

答えて

1

我々は、データセットを転置最初と最後の要素を削除し、ベクトルに変換し、data.frame

library(data.table) 
m1 <- t(setDF(DT1)[-1]) 
d1 <- data.frame(col1= c(m1[-length(m1)]), col2 = c(m1[-1]), stringsAsFactors=FALSE) 

に2つの列を作成したり、我々はmeltし、操作

でグループを行うことができますすることができます
dN <- setDT(melt(t(DT1[-1])))[, .(col1 = value[-.N], 
       col2 = value[-1]), Var2][, Var2 := NULL][] 
関連する問題