目前我面临以下问题,我正在 Stata 解决这个问题。我添加了算法标签,因为它主要是我感兴趣的步骤而不是 Stata 代码。
我有一些变量,比如 var1 - var20 可能包含一个字符串。我只对其中一些字符串感兴趣,我们称它们为 A、B、C、D、E、F,但也可以出现其他字符串(所有这些都将表示为 X)。我还有一个唯一的标识符 ID。部分数据可能如下所示:
ID | var1 | var2 | var3 | .. | var20
1 | E | | | | X
1 | | A | | | C
2 | X | F | A | |
8 | | | | | E
现在我想为每个 ID 以及在任何变量中每次出现的字符串 A、B、C、E、D、F 之一创建一个条目。上面的数据应该是这样的:
ID | var1 | var2 | var3 | .. | var20
1 | E | | | .. |
1 | | A | | |
1 | | | | | C
2 | | F | | |
2 | | | A | |
8 | | | | | E
在这里,每当有一个不是 A、B、C、D、E 或 F 的字符串 X 时,我们都会忽略。到目前为止,我的尝试是创建一个变量,为每个条目计算 A、B 出现的次数 N, C、D、E、F。在上面的原始数据中,该变量将为 N=1,2,2,1。然后对于每个条目,我都会创建 N 个副本。这导致数据:
ID | var1 | var2 | var3 | .. | var20
1 | E | | | | X
1 | | A | | | C
1 | | A | | | C
2 | X | F | A | |
2 | X | F | A | |
8 | | | | | E
我的问题是如何从这里解决这个问题?很抱歉标题不好,但我无法更具体地表达它。