I am really not doing this right. I have this code
proc sql;
update table
set ((desc = n/a if cd is null) and (cd = 0 if desc = n/a) and
(desc = minor if cd = 1) and (desc = moderate if cd =2) and
(desc = major if cd = 3) and (desc = extreme if cd = 4));
run;
I think my code is just not right
Try this:
proc sql;
update table yourtablename
set desc=
case
when cd is null
then 'n/a'
when cd=1
then 'minor'
when cd=2
then 'moderate'
when cd=3
then 'major'
when cd=4
then 'extreme'
else 'others'
end;
update table want
set cd=0 where desc='n/a';
quit;
Try this:
proc sql;
update table yourtablename
set desc=
case
when cd is null
then 'n/a'
when cd=1
then 'minor'
when cd=2
then 'moderate'
when cd=3
then 'major'
when cd=4
then 'extreme'
else 'others'
end;
update table want
set cd=0 where desc='n/a';
quit;
I get errors saying: expressions using equals (=) has components that are different data types
You need to let us know the variable type of your variables: cd and desc. is 'cd' numeric?
You find the info by running:
1. proc sql;
describe table yourtablename;
quit;
or
2. proc contents data=your tablename;
run;
After knowing the types of your variables, you will be able to make changes.
Regards,
Haikuo
They are both text fields
Well, then:
proc sql;
update table yourtablename
set desc=
case
when cd is null
then 'n/a'
when strip(cd)='1'
then 'minor'
when strip(cd)='2'
then 'moderate'
when strip(cd)='3'
then 'major'
when strip(cd)='4'
then 'extreme'
else 'others'
end;
update table want
set cd='0' where desc='n/a';
quit;
I got it to work by putting ' ' around the 0-4 and it worked
There you go!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.