BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
cmemtsa
Quartz | Level 8
data T;
input ID L EXP;
Datalines;
1 1 10
1 2 10
1 2 20
1 3 30
2 1 10
2 1 10
2 2 60
3 2 60
;



data want;
set t;
by id;
if first.id and first.L > 1 then exp=. ;

run;

Hi,

in this sample I want to update exp to null in case that in every first ID the first L is >1 which is the case with ID = 3

Where is the mistake in the code?

 

Thanks for the help. 

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

A first. variable is only created for variables named in the BY statement, and it is boolean, meaning it will only take on the values 0 or 1.

Corrected code:

data want;
set t;
by id;
if first.id and L > 1 then exp = .;
run;

View solution in original post

2 REPLIES 2
Kurt_Bremser
Super User

A first. variable is only created for variables named in the BY statement, and it is boolean, meaning it will only take on the values 0 or 1.

Corrected code:

data want;
set t;
by id;
if first.id and L > 1 then exp = .;
run;
cmemtsa
Quartz | Level 8
Thanks! That's correct.