2017-12-12 1 views
0

에서 완전한 데이터를 생성 나는 다음과 같은 구매 데이터가는 STATA

clear 
input id productid purchase 
1  1   1 
2  1   1 
3  2   1 
1  3   1 
end 

내가 많이 노력했다 다음 데이터 세트

id productid purchase 
1  1   1 
2  1   1 
3  1   0 
1  2   0 
2  2   0 
3  2   1 
1  3   1 
2  3   0 
3  3   0 
end 

을 만들기 위해 모든 ID-제품 ID 콤보에 대한 행을 추가 할 수 있습니다 그게 효과가 없습니다. 이게 내 최신이야.

qui sum id, d 
local obs = r(N) 
expand = `obs' 
levelsof productid, local(id) 
local j = 1 
foreach i of local id { 
    replace productid = `i' if `j' == id 
    local j = `j' + 1 
} 

답변

0

fillin 명령 (help fillin 참조)이 작업을위한 도구입니다.

메모리에 샘플 데이터로 시작 :

fillin id productid 
replace purchase = 0 if _fillin 
drop _fillin 
sort productid id 
list, sepby(productid) abbreviate(12) 

 +---------------------------+ 
    | id productid purchase | 
    |---------------------------| 
    1. | 1   1   1 | 
    2. | 2   1   1 | 
    3. | 3   1   0 | 
    |---------------------------| 
    4. | 1   2   0 | 
    5. | 2   2   0 | 
    6. | 3   2   1 | 
    |---------------------------| 
    7. | 1   3   1 | 
    8. | 2   3   0 | 
    9. | 3   3   0 | 
    +---------------------------+ 
+0

매우 도움이 생산하고 있습니다. 내가 너 한테 물어볼 수 있을까? 'id '와'productid'가 사용 가능하게 된'date'에 대해'start_date'와'end_date'가 있다고 가정 해 봅시다. 해당 날짜를 염두에두고 fillin을 코딩 할 수 있습니까? 즉, 제품을 구입할 수없는 사람이 행을 가지고 있지 않도록하십시오. – CJ12

+0

MWE에 개인에 대한 불변 변수를 추가하지 않았습니다. 데이터의 각 사람에 대해 해당 정보를 입력하는 방법 – CJ12

+0

원본 데이터에서 두 개의 새 데이터 집합을 만듭니다. (1) 시간 불변 데이터, ID 당 하나의 관찰 (2) 시간 불변 데이터가없는 시변 데이터. 두 번째 데이터 셋에 fillin을 적용한 다음 merge m : 1을 사용하여 시간 불변 데이터를 다시 확장 된 데이터 세트에 추가하십시오. –