2017-03-11 7 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 
다른 상태

를 나타냅니다 첫 번째 테이블의 첫 번째 행에서. 유사하게, 제 2 테이블의 행 6-10, 11-12, 13-14, &15는 표 1의 제 2, 제 3, 제 4 & 제 5 행으로부터 형성된다.

데이터 테이블 메소드 또는 다른 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) 

에 두 개의 열을 만들거나 우리는 melt 다음 작업

하여 그룹을 할 수 있습니다
dN <- setDT(melt(t(DT1[-1])))[, .(col1 = value[-.N], 
       col2 = value[-1]), Var2][, Var2 := NULL][]