首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于矩阵在Excel或Stata中创建假标识符

基于矩阵在Excel或Stata中创建假标识符
EN

Stack Overflow用户
提问于 2014-01-27 13:08:48
回答 1查看 94关注 0票数 2

我试图创建一列假标识符,但我被困住了。

我正在使用Excel 2010。我想创建一列假标识符(1,2,3等)。基于“辅助矩阵”。辅助矩阵告诉我唯一的观察结果,以及重复了多少次。

辅助矩阵有两列,如下所示。(我所拥有的实际辅助性要大得多,因此无法手动创建。)

C1- C2

3-4

2-6

4-2

辅助矩阵的第一行告诉我,前12条观测(3*4)有4个唯一标识符,每个唯一观察在下一个唯一标识符之前重复3次。

第二行告诉我,接下来的12个观察(2*6)有6个唯一标识符,每个在下一个标识符之前重复2次。

根据给定的辅助项,最终输出应该是一个列,如下所示

代码语言:javascript
复制
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实现这一点,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 17:02:45

考虑到词典和风格指南中的流行建议,“独特”意味着精确地出现一次,我推荐术语“不同的”而不是“独特的”。

以下是Stata解决方案:

代码语言:javascript
复制
. 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 |
    +--------------------+
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21381769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档