2014-01-27 3 views
2

Я пытаюсь создать столбец поддельных идентификаторов, и я застрял.Создание поддельных идентификаторов в Excel или Stata на основе матрицы

Я использую Excel 2010. Я хотел бы создать столбец поддельных идентификаторов (1, 2, 3 и т. Д.) На основе «вспомогательной матрицы». Вспомогательная матрица сообщает мне уникальные наблюдения и сколько раз их повторяют.

Вспомогательная матрица имеет две колонки и будет выглядеть следующим образом. (Фактическое вспомогательное что у меня есть намного больше, что делает невозможным создание вручную.)

C1-- С2

3 - 4

2 - 6

4 - 2

Первая строка вспомогательной матрицы сообщает, что первые 12 наблюдений (3 * 4) имеют 4 уникальных идентификатора, и каждое уникальное наблюдение повторяется 3 раза перед следующим уникальным идентификатором.

Вторая строка сообщает мне, что следующие 12 наблюдений (2 * 6) имеют 6 уникальных идентификаторов, и каждый из них повторяет 2 раза перед следующим идентификатором.

На основании вспомогательной дается окончательный вывод должен быть столбец, как

1 
1 
1 
2 
2 
2 
3 
3 
3 
. 
. 
. 
11 
11 
11 
11 
12 
12 
12 
12 

Это означает, что с учетом вспомогательной матрицы мой окончательный выходной столбец должен иметь 12 уникальных идентификаторов (4 + 6 + 2) и в общей сложности из 32 строк (3 * 4 + 2 * 6 + 4 * 2).

У меня также есть доступ к Stata, поэтому, если кто-нибудь знает, как это сделать в Stata, было бы здорово.

ответ

3

Я рекомендую терминологию «отличную», а не «уникальную», учитывая преобладающий совет со словарей и руководств по стилю, которые «уникальные» означают, что происходит ровно один раз.

Вот решение Stata:

. clear 

. input c1 c2 

       c1   c2 
1. 3 4 
2. 2 6 
3. 4 2 
4. end 

. gen long seq = _n 

. expand c1 * c2 
(29 observations created) 

. bysort seq : gen work = ceil(_n/c1) 

. gen id = sum(work != work[_n-1]) 

. drop work 

. list 

    +--------------------+ 
    | c1 c2 seq id | 
    |--------------------| 
1. | 3 4  1 1 | 
2. | 3 4  1 1 | 
3. | 3 4  1 1 | 
4. | 3 4  1 2 | 
5. | 3 4  1 2 | 
    |--------------------| 
6. | 3 4  1 2 | 
7. | 3 4  1 3 | 
8. | 3 4  1 3 | 
9. | 3 4  1 3 | 
10. | 3 4  1 4 | 
    |--------------------| 
11. | 3 4  1 4 | 
12. | 3 4  1 4 | 
13. | 2 6  2 5 | 
14. | 2 6  2 5 | 
15. | 2 6  2 6 | 
    |--------------------| 
16. | 2 6  2 6 | 
17. | 2 6  2 7 | 
18. | 2 6  2 7 | 
19. | 2 6  2 8 | 
20. | 2 6  2 8 | 
    |--------------------| 
21. | 2 6  2 9 | 
22. | 2 6  2 9 | 
23. | 2 6  2 10 | 
24. | 2 6  2 10 | 
25. | 4 2  3 11 | 
    |--------------------| 
26. | 4 2  3 11 | 
27. | 4 2  3 11 | 
28. | 4 2  3 11 | 
29. | 4 2  3 12 | 
30. | 4 2  3 12 | 
    |--------------------| 
31. | 4 2  3 12 | 
32. | 4 2  3 12 | 
    +--------------------+ 
Смежные вопросы