Hi
In my datastep I want to make a new variable based on a date variable
Nor a specific date, men a date value.
If variable1 HAS a date then new_variable = 1
If it doesnt have a date the new variable = 0
How can I do so?
The logic here is: If variable1 can meaningfully be represented as a date, set new_varaible to 1. Else set new_variable to 0.
data have;
input variable1 $12.;
datalines;
01/01/2021
nonsense
32/01/2021
somechar
31/01/2021
nonsense
01jan2021
somechar
;
data want;
set have;
new_variable = input(variable1, anydtdte12.) > .;
run;
Result:
variable1 new_variable 01/01/2021 1 nonsense 0 32/01/2021 0 somechar 0 31/01/2021 1 nonsense 0 01jan2021 1 somechar 0
What do you mean by "If variable1 HAS a date" ?
I can guess that variable1 is a character variable? So, if the value in variable1 can represent a date, then set new_variable = 1.
Is that right? Can you post come examples of variable1?
the variable1 has the dates "2020-12-29" etc.
But can also contain "NULL"
In a data step I want to make a new variable (new_variable) that has the values 1 if variable 1 has a date or 0 if variable1 has no date
make sense?
The logic here is: If variable1 can meaningfully be represented as a date, set new_varaible to 1. Else set new_variable to 0.
data have;
input variable1 $12.;
datalines;
01/01/2021
nonsense
32/01/2021
somechar
31/01/2021
nonsense
01jan2021
somechar
;
data want;
set have;
new_variable = input(variable1, anydtdte12.) > .;
run;
Result:
variable1 new_variable 01/01/2021 1 nonsense 0 32/01/2021 0 somechar 0 31/01/2021 1 nonsense 0 01jan2021 1 somechar 0
Thanks!
Can this be done in proc sql? or does it not know these times of functions?
Proc SQL is no problem
data have;
input variable1 $12.;
datalines;
01/01/2021
nonsense
32/01/2021
somechar
31/01/2021
nonsense
01jan2021
somechar
;
proc sql;
select variable1,
(input(variable1, anydtdte12.) > .) as new_variable
from have;
quit;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.
Find more tutorials on the SAS Users YouTube channel.