BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
jenim514
Pyrite | Level 9

Hi!

 

I have a messy time date variable in a character string.

 

the orignal values look like this...

 

Inc
291900MAR07
142300APR07
03APR07
10APR07

 

I'm creating two  separate variables (date_var time_var) from the original variable (inc)  In the values with the longer string the first two numbers are actually the day, and the 3-6 is the time.  Many of the values do not have a time entered.  What I want to do is have the time variables set to missing if the time is missing.

 

So, to create the date_var I did this (and it worked fine)


data want ;
set have (keep=rescuereportid inc);
inc=compress(inc);

date_var=substr(inc,1,2)||substr(inc,max(1,length(inc)-4));
run;

 

How can I create a time variable with variables that are different in length (i don't want to write over values that have existing time vlaues)?  Want to look like this....

 

Orig_Var Date_Var Time_Var
291900MAR07 29MAR07 1900
142300APR07 14APR07 2300
03APR07 03APR07 .
10APR07 10APR07 .

 

Help is appreciated!

 

 

 
 
 
 
 
1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

Use the LENGTH function to check the length and then conditionally process the variables.

 

if length(var) = 10 then do;
time= <your code>;
date=<your code>;
end;
else if length(var)=9 then do;
time=.;
date=.input(.... );
end;

View solution in original post

6 REPLIES 6
Reeza
Super User

Use the LENGTH function to check the length and then conditionally process the variables.

 

if length(var) = 10 then do;
time= <your code>;
date=<your code>;
end;
else if length(var)=9 then do;
time=.;
date=.input(.... );
end;
HB
Barite | Level 11 HB
Barite | Level 11
That exactly what I was going to suggest. Pout. Lol.
Reeza
Super User

@HB wrote:
That exactly what I was going to suggest. Pout. Lol.

@HB yeah...I should really log off and go work 🙂

jenim514
Pyrite | Level 9
@Reeza NO! don't log off and work! Then I wouldn't be able to work!! lol
Reeza
Super User

@jenim514 aren't you in Ottawa, you only have a little bit left.

jenim514
Pyrite | Level 9
@Reeza No, in San Diego... only half way through the day!

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 1886 views
  • 5 likes
  • 3 in conversation