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!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.