创建计数器变量
Create counter variable
我正在使用 Stata 13。
我想创建一个变量,当一堆其他变量的 none 等于 0 时,该变量等于 0;当一堆其他变量中的一个变量等于 1 时,此变量为 1;当一堆其他变量中的两个变量为 1 时,它为 2;当一堆其他变量中的三个变量为 1 时,它为 3;等等。
有什么建议吗?
你们的条件并不互斥。两个标准需要分开。
当一堆其他变量的none等于0时为0的变量。
当一堆其他变量中的一个变量等于1时,一个变量为1; 2 当两个变量为 1 时; 3 当三个变量为1时;等等
条件 #2 只是计算 1,如下所示:
clear
input x1 x2 x3
0 0 1
0 1 1
1 1 1
end
egen count1 = anycount(x1 x2 x3), value(1)
list
+-----------------------+
| x1 x2 x3 count1 |
|-----------------------|
1. | 0 0 1 1 |
2. | 0 1 1 2 |
3. | 1 1 1 3 |
+-----------------------+
条件 #1 可以通过这种方式对少量变量完成:
gen none0 = inlist(0, x1, x2, x3)
list
+-------------------------------+
| x1 x2 x3 count1 none0 |
|-------------------------------|
1. | 0 0 1 1 1 |
2. | 0 1 1 2 1 |
3. | 1 1 1 3 0 |
+-------------------------------+
rowtotal()
在您的评论中计算 1 的方法仅适用于仅 1、0 或缺失的值,这可能适用于您的数据,但不是规定的条件。
我正在使用 Stata 13。
我想创建一个变量,当一堆其他变量的 none 等于 0 时,该变量等于 0;当一堆其他变量中的一个变量等于 1 时,此变量为 1;当一堆其他变量中的两个变量为 1 时,它为 2;当一堆其他变量中的三个变量为 1 时,它为 3;等等。
有什么建议吗?
你们的条件并不互斥。两个标准需要分开。
当一堆其他变量的none等于0时为0的变量。
当一堆其他变量中的一个变量等于1时,一个变量为1; 2 当两个变量为 1 时; 3 当三个变量为1时;等等
条件 #2 只是计算 1,如下所示:
clear
input x1 x2 x3
0 0 1
0 1 1
1 1 1
end
egen count1 = anycount(x1 x2 x3), value(1)
list
+-----------------------+
| x1 x2 x3 count1 |
|-----------------------|
1. | 0 0 1 1 |
2. | 0 1 1 2 |
3. | 1 1 1 3 |
+-----------------------+
条件 #1 可以通过这种方式对少量变量完成:
gen none0 = inlist(0, x1, x2, x3)
list
+-------------------------------+
| x1 x2 x3 count1 none0 |
|-------------------------------|
1. | 0 0 1 1 1 |
2. | 0 1 1 2 1 |
3. | 1 1 1 3 0 |
+-------------------------------+
rowtotal()
在您的评论中计算 1 的方法仅适用于仅 1、0 或缺失的值,这可能适用于您的数据,但不是规定的条件。