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


Hello-

I wish to compute length of stay for each observation by subtracting ADT_IN from ADR_OUT.

 

Please help me with the code 

 

ADT_IN ADT_OUT
2/9/2017 19:50 2/10/2017 14:21
2/8/2017 17:50 2/10/2017 12:40
2/7/2017 11:43 2/9/2017 12:50
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
1 ACCEPTED SOLUTION

Accepted Solutions
amatsu
Obsidian | Level 7

 

 

data have;
input (ADT_IN ADT_OUT)(:mdyampm. &);
format ADT_IN ADT_OUT datetime.;
cards;
2/9/2017 19:50 2/10/2017 14:21
2/8/2017 17:50 2/10/2017 12:40
2/7/2017 11:43 2/9/2017 12:50
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
;

data want;
  set have;
  /* This code doesn't take into account whether or not adding 1 to the result. */
  LOS = datepart(ADT_OUT) - datepart(ADT_IN);
run;

 

View solution in original post

6 REPLIES 6
desireatem
Pyrite | Level 9


Hello-

I wish to compute length of stay for each observation by subtracting ADT_IN from ADR_OUT.

 

Please help me with the code 

 

data;

input ADT_IN ADT_OUT;

 

Cards;

2/9/2017 19:50   2/10/2017 14:21

 2/8/2017 17:50  2/10/2017 12:40

;

run;

 

Each that has an associated time to it.

Reeza
Super User

I've merged your two posts since they're the same. What have you tried so far? Post any code that you've attempted to date. 

Hint, try INTCK and/or direct subtraction.

 

There's a tutorial on dates and times here:

https://communities.sas.com/t5/SAS-Communities-Library/Working-with-Dates-and-Times-in-SAS-Tutorial/...

 

Edit: Unfortunately your data step appears incorrect, instructions on posting data is here.

 

71 data;
72 input ADT_IN ADT_OUT;
73 Cards;
 
NOTE: Invalid data for ADT_IN in line 74 1-8.
NOTE: Invalid data for ADT_OUT in line 74 10-14.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
74 2/9/2017 19:50 2/10/2017 14:21
ADT_IN=. ADT_OUT=. _ERROR_=1 _N_=1
NOTE: Invalid data for ADT_IN in line 75 1-8.
NOTE: Invalid data for ADT_OUT in line 75 10-14.
75 2/8/2017 17:50 2/10/2017 12:40
ADT_IN=. ADT_OUT=. _ERROR_=1 _N_=2
desireatem
Pyrite | Level 9

Thank you. I didnt meant to post it twice. The first was showing error messages when pasted

amatsu
Obsidian | Level 7

 

 

data have;
input (ADT_IN ADT_OUT)(:mdyampm. &);
format ADT_IN ADT_OUT datetime.;
cards;
2/9/2017 19:50 2/10/2017 14:21
2/8/2017 17:50 2/10/2017 12:40
2/7/2017 11:43 2/9/2017 12:50
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
2/8/2017 12:56 2/11/2017 0:42
;

data want;
  set have;
  /* This code doesn't take into account whether or not adding 1 to the result. */
  LOS = datepart(ADT_OUT) - datepart(ADT_IN);
run;

 

desireatem
Pyrite | Level 9

Thank you!

amatsu
Obsidian | Level 7

I edited and added a information in my initial post.

sas-innovate-2024.png

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.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 975 views
  • 1 like
  • 3 in conversation