检查范围是否包含特定值

时间:2018-07-03 17:03:25

标签: stata

给出

Var1。如果观察值或前5个观察值之一是缺失值,则Var2的值应为1或0。Var2的语法是什么?

我知道如何使用许多if语句来做到这一点。但是当我需要对前50个观察结果进行操作时,便会变得非常不便。

* Example generated by -dataex-. To install: ssc install dataex
clear
input float(Var1 Var2)
5 0
. 1
2 1
5 1
7 1
9 1
5 1
9 0
0 1
2 1
7 1
5 1
3 1
2 1
5 0
end

1 个答案:

答案 0 :(得分:1)

该问题与您先前引用的问题Finding the second smallest value相似。这个答案也是如此。 rangestat来自SSC。

clear
input float(Var1 Var2)
5 0
. 1
2 1
5 1
7 1
9 1
5 1
9 0
0 1
2 1
7 1
5 1
3 1
2 1
5 0
end

gen long id = _n 
gen Bad = inlist(Var1, 0, .) 
rangestat (sum) Bad, int(id -5 0) 

list, sepby(Bad_sum)

     +----------------------------------+
     | Var1   Var2   id   Bad   Bad_sum |
     |----------------------------------|
  1. |    5      0    1     0         0 |
     |----------------------------------|
  2. |    .      1    2     1         1 |
  3. |    2      1    3     0         1 |
  4. |    5      1    4     0         1 |
  5. |    7      1    5     0         1 |
  6. |    9      1    6     0         1 |
  7. |    5      1    7     0         1 |
     |----------------------------------|
  8. |    9      0    8     0         0 |
     |----------------------------------|
  9. |    0      1    9     1         1 |
 10. |    2      1   10     0         1 |
 11. |    7      1   11     0         1 |
 12. |    5      1   12     0         1 |
 13. |    3      1   13     0         1 |
 14. |    2      1   14     0         1 |
     |----------------------------------|
 15. |    5      0   15     0         0 |
     +----------------------------------+
相关问题