Modify statement only updating 1st OBS

Accepted Solution Solved
Reply
Contributor
Posts: 44
Accepted Solution

Modify statement only updating 1st OBS

All

 

I want to update all observations in dataset with M or F.  Prefer to use modify statement but sql works too.  Just wan to get the below data step working.  It only updates the first obs

 

 

data etl.inp_claims_lds2013_2016;
modify etl.inp_claims_lds2013_2016;
 if gndr_cd = '1' then gndr_cd ='M'; replace;
 if gndr_cd = '2' then gndr_cd = 'F'; replace;
 run;

ERROR: No matching observation was found in MASTER data set.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set ETL.INP_CLAIMS_LDS2013_2016.
NOTE: The data set ETL.INP_CLAIMS_LDS2013_2016 has been updated. There were 1 observations rewritten, 0 observations
added and 0 observations deleted.


Accepted Solutions
Solution
‎03-07-2018 10:29 PM
PROC Star
Posts: 2,353

Re: Modify statement only updating 1st OBS

Feel free to not look at the code I provided.

View solution in original post


All Replies
PROC Star
Posts: 2,353

Re: Modify statement only updating 1st OBS

Did you mean to do this?

 if gndr_cd = '1' then do; gndr_cd ='M'; replace; end;
 if gndr_cd = '2' then do; gndr_cd = 'F'; replace; end;

Contributor
Posts: 44

Re: Modify statement only updating 1st OBS

I want to cycle through the entire dataset and up date gndr_cd using modify statement
Solution
‎03-07-2018 10:29 PM
PROC Star
Posts: 2,353

Re: Modify statement only updating 1st OBS

Feel free to not look at the code I provided.

Contributor
Posts: 44

Re: Modify statement only updating 1st OBS

lol i will give it a go
Contributor
Posts: 44

Re: Modify statement only updating 1st OBS

funny -

put in your code and saw the below

94 data etl.inp_claims_lds2013_2016;
95
96 modify etl.inp_claims_lds2013_2016;
97 if gndr_cd = '1' then do; gndr_cd ='M'; replace; end;
98 if gndr_cd = '2' then do; gndr_cd = 'F'; replace; end;
99 run;

NOTE: There were 103834 observations read from the data set ETL.INP_CLAIMS_LDS2013_2016.
NOTE: The data set ETL.INP_CLAIMS_LDS2013_2016 has been updated. There were 103834 observations rewritten, 0
observations added and 0 observations deleted.
NOTE: DATA statement used (Total process time):
real time 1.29 seconds
cpu time 1.28 seconds

So that is why i wrote cycle through the entire file

But now that I looked at the data it was updated.

it did not record to the log
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 155 views
  • 2 likes
  • 2 in conversation