## Delete observations under certain condition

Solved
Occasional Contributor
Posts: 9

# Delete observations under certain condition

Hello all,

I currently have a data file looks like:

 ID Year Var A 1 2000 0 1 2001 0 1 2002 1 1 2003 0 2 2000 0 2 2001 1 2 2002 1 2 2003 1 2 2004 0 3 2001 0 3 2002 0 3 2003 1 3 2004 0 3 2005 1 3 2006 0

What I need is excluding observations with Var A = 0 prior to the first time when Var A = 1 by the group ID. So the outcome of the data needs to look like:

 ID Year Var A 1 2002 1 1 2003 0 2 2001 1 2 2002 1 2 2003 1 2 2004 0 3 2003 1 3 2004 0 3 2005 1 3 2006 0

How can I code it? Thank you.

Accepted Solutions
Solution
‎04-07-2018 03:45 PM
PROC Star
Posts: 1,836

## Re: Delete observations under certain condition

[ Edited ]
``````data have;
input ID	Year	Var_A;
datalines;
1	2000	0
1	2001	0
1	2002	1
1	2003	0
2	2000	0
2	2001	1
2	2002	1
2	2003	1
2	2004	0
3	2001	0
3	2002	0
3	2003	1
3	2004	0
3	2005	1
3	2006	0
;

data want;
__k=0;
do until(last.id);
set have;
by id;
if Var_A=1 then __k=1;
if __k then output;
end;
drop _:;
run;``````

All Replies
Solution
‎04-07-2018 03:45 PM
PROC Star
Posts: 1,836

## Re: Delete observations under certain condition

[ Edited ]
``````data have;
input ID	Year	Var_A;
datalines;
1	2000	0
1	2001	0
1	2002	1
1	2003	0
2	2000	0
2	2001	1
2	2002	1
2	2003	1
2	2004	0
3	2001	0
3	2002	0
3	2003	1
3	2004	0
3	2005	1
3	2006	0
;

data want;
__k=0;
do until(last.id);
set have;
by id;
if Var_A=1 then __k=1;
if __k then output;
end;
drop _:;
run;``````
Occasional Contributor
Posts: 9