2017-11-27 7 views
0

の範囲にわたって、私はこのケースでは、訪問の範囲にわたる最低値の変数を抽出しようとしている:、訪問

私が入学の最初の3日間で最も低い値をしたいです(入国1日目または2日目か3日目)、VisitIDによって。助言がありますか?

visitID value day of admission 
1   941  1 
1   948  2 
1   935  4 

2   83  1 
2   84  2 
2   50  4 
2   79  5 

と私が望む:

visitID value visit minvalue 

1  941  1  941 
1  948  2  941 
1  935  4  941 

2  83  1  83 
2  84  2  83 
2  50  4  83 
2  79  5  83 

答えて

2

あなたが簡単に使用可能な形式でデータを提示していた場合、それは便利だっただろう。しかし、ここではあなたを有用な方向に向けるアプローチがあります。

. list, sepby(visitid) 

    +----------------------------------+ 
    | visitid value day minvalue | 
    |----------------------------------| 
    1. |  1  941  1  941 | 
    2. |  1  948  2  941 | 
    3. |  1  935  4  941 | 
    |----------------------------------| 
    4. |  2  83  1   83 | 
    5. |  2  84  2   83 | 
    6. |  2  50  4   83 | 
    7. |  2  79  5   83 | 
    +----------------------------------+ 
になり

* Example generated by -dataex-. To install: ssc install dataex 
clear 
input byte visitid int value byte day 
1 941 1 
1 948 2 
1 935 4 
2 83 1 
2 84 2 
2 50 4 
2 79 5 
end 
bysort visitid (day) : egen minvalue = min(cond(day<=3,value,.))