11-29-2012 04:40 PM
I am having some trouble with SAS formats that I cannot figure out. I have two variables-- ptid2 and dob2. When I run a proc contents I am told that these variables have the following properties:
ptid2: type=char len=11 format=$11. informat=$11.
dob2: type=num len=8 format=date9. informat=date9
then I create a new data set from this data set that changes these variables in some cases. The code is as follows:
if ptid='00302333XX1' and inc_date2 lt 201005
ptid2='00305560440' and dob2=mdy(3,30,2010);
else if ptid='00302333XX1' and inc_date2 ge 201005
ptid2='00305560555' and dob2=mdy(5,23,2011);
when I run this code I am told that char values are being converted to numeric values at column 19 (where I am setting ptid='XXXXXXXXXXX' and numeric values are being converted to char values at column 33 (where I am setting dob2=mdy(mm,dd,yyyy).
Any thoughts on why this may be happening??
Thank you for your help!
11-29-2012 04:51 PM
inc_date2 lt 201005
Check that line.
What format/type is inc_date2 and 201005 isn't a valid date to compare to, so what are you trying to check.
I'm assuming you haven't calculated the sas numeric date of something here...
11-29-2012 06:32 PM
Your outcomes must be listed as separate statements.
if ... then do;
You may have problems with the comparison as well, as Reeza indicated. It would help if you would post the similar PROC CONTENTS results for inc_date2.