2017-12-18 19 views
0

DB1과 DB2 데이터베이스를 병합하고 싶지만 어려움을 겪고 있습니다. 나는 Stata가 내가 무엇을하려고 하는지를 결정하는데 도움을 원한다.Stata에서 데이터베이스를 병합하고 병합 된 데이터의 ID와 값을 기반으로 새로운 병을 만듭니다.

DB1은 약 1000 관찰을 가지고 있으며, 다음과 같습니다

+----------+ 
    | date b | 
    |----------| 
1. | 1  7 | 
2. | 2  6 | 
3. | 3  7 | 
    +----------+ 

DB2는 약 1000 관찰 65 개 ID를 각각 구성되어있다. 내가 좋아하는 궁극적 인 데이터베이스가 보이도록 DB1과 DB2를 병합하려는

+--------------+ 
    | date id b | 
    |--------------| 
1. | 1  1 4 | 
2. | 2  1 4 | 
3. | 3  1 5 | 
4. | 1  2 9 | 
5. | 2  2 8 | 
6. | 3  2 7 | 
7. | 1  3 1 | 
8. | 2  3 2 | 
9. | 3  3 1 | 
    +--------------+ 

: 그것은 뭔가처럼 보이는 내가 병합 명령에 대한 책을 읽은 한하지만 혼자 만들지 않습니다

+------------------------------+ 
    | date b id1b id2b id3b ...| 
    |------------------------------| 
1. | 1  7 4 9  1 ...| 
2. | 2  6 4 8  2 ...| 
3. | 3  7 5 7  1 ...| 
    +------------------------------+ 

내 최고의 데이터베이스.

내가 도와 줄 자료를 안내해 줄 수 있습니까? 내가 뭘하려고하는지 뭐라고 부르니? 새로운 변수를 생성하기 위해 Stata에게 명령해야하는 것처럼 느껴진다.

+0

정말 내가 어디 가세요되는 B 이해 확신 할 수 없습니다. DB1과 DB2의 각 b에 대해 고유 한 값을 제공 한 다음 병합 된 데이터 세트의 위치를 ​​표시해야합니다. –

+0

@WilliamLisowski 완료! –

+1

전체 답변을 드릴 시간이 없지만, DB2의 'reshape wide b'로 시작한 다음 DB1과 '1 : 1 date merge'를 시작하고 싶습니다. –

답변

0

@William Lisowski가 옳습니다. 이것은 당신에게 당신이 요구하는 것을 얻습니다, 간단하다. rename. 분석에 가장 적합한 구조인지 여부는 분명하지 않습니다. 유사한 데이터를 사용하는 대부분의 작업은 reshape long 일수록 쉬울 것입니다.

clear 
input date b 
1 7 
2 6 
3 7 
end 
save DB1 

clear 
input date id b 
1 1 4 
2 1 4 
3 1 5 
1 2 9 
2 2 8 
3 2 7 
1 3 1 
2 3 2 
3 3 1 
end 
reshape wide b, j(id) i(date) 
merge 1:1 date using DB1 

실제로, 나는 훨씬 더 일반적으로 직접 long 구조를 얻기 위해 이런 짓을 할 것이다 :

clear 
input date b 
1 7 
2 6 
3 7 
end 
rename b B 
save DB1 , replace 
clear 
input date id b 
1 1 4 
2 1 4 
3 1 5 
1 2 9 
2 2 8 
3 2 7 
1 3 1 
2 3 2 
3 3 1 
end 
merge m:1 date using DB1 
+1

나는 긴 구조에 대한 닉의 선호에 동의한다. DB2에서 id 및 b 변수에 대해 더 많이 알아야 요청 된 방식으로 문자열을 스트링 할 것을 권장합니다. –

+0

고마워요. @nickcox 나는 당신이 제안한 방법을 실험 할 것이다. B는 ID (i) B 관측치와 다른 것들의 선형 조합입니다. reshape 사용 후, 행에있는 모든 ID (i) Bs의 합계와 동일한 var를 생성했습니다. 그러나 나는 많은 변수가 있다는 것을별로 좋아하지 않습니다. 어쩌면 당신의 방법이 더 직관적 일 수 있습니다. 감사합니다. –