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 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 1276 views
  • 1 like
  • 3 in conversation