2013-11-02 4 views
1

62 개 관측마다 각 사람에게 고유 한 ID를 지정해야합니다. 아래의 예에서, 1 내지 62 및 visits = 3 내지 siteid와 각 행 인 1 참조 할 것, 1 내지 62 및 visits = 1 siteid와 각 행 등, 사람이 참조 할 것 I은Stata에서 2 가지 조건으로 그룹 ID를 생성하십시오.

egen newid=group(siteid visits) 
시도 이러한

by siteid: gen uniqueid = 1 if _n==1 
    replace uniqueid = sum(uniqueid) 

밖에는 원하는 결과를 얻을 수 없다.
 
siteid 

1 
2 
3 
4 
... 
62 
1 
2 
3 
4 
... 
62 
1 
2 
3 
4 
... 
62 

등 등

 
visits 

3 
3 
3 
3 
... 
3 
1 
1 
1 
1 
... 
1 

과에

.

답변

1

처음 62 개의 관측치에 1을 할당하고 다음 62 개의 관측치에 2를 할당하는 등의 작업을 수행하면됩니다. 그게로 이루어집니다

egen uniqueid = seq(), block(62) 

여기에서 중요한 세부 사항은이 명령이 기존 변수를 전혀 참조하지 않는다는 것입니다. 그들의 정확한 값은 부적합합니다. 하지만 같은 효과를 얻으려면

gen uniqueid = sum(siteid == 1) 

이 될 수 있습니다. 등, 당신은 1 siteid 61 제로 다음에 하나의 블록을 받고, 한 때마다 점수 및 sum()에서 누적 합계는 1 초, 2 초 블록입니다

+0

예! 죄송합니다 - 게시하기 전에 var 이름을 다시 작성하고 하나의 var 이름을 바꾸는 것을 잊어 버렸지 만 STATA가하고 싶은 바로 그 것이기 때문에 당신은 나를 이해했습니다. 여기에 입력 할 때 열을 열로 표시하는 방법을 모르겠습니다. 행으로 표시됩니다. 따라서 "행 벡터"를 추가하여 명확히하려는 시도입니다. 도와 주셔서 감사합니다! 다행히도 편집 된 글은 독자들에게 도움이되기를 바랍니다. – JCV

+0

감사. 또한 http://www.stata.com/support/faqs/resources/statalist-faq/#spell –

+0

을 참조하십시오. 질문에 답변이 있으면 대답을 수락하십시오. 그로 인해 당신은 어떤 평판을 얻을 것입니다. –