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

So I need to see how many days have passed between observations.

So :

Person Date

A 1/1/12

A  1/5/12

A  1/7/12

B 4/5/12

B 4/9/12

B and so on

B

B

C

C

Basically, I want a column to the right that says X days have passed since last instance. I am thinking an array, but I am horrible at arrays.

1 ACCEPTED SOLUTION

Accepted Solutions
data_null__
Jade | Level 19

DIF function sounds about right.

data dif;
   input id:$1. date :mmddyy.;
  
format date date.;
  
cards;
A 1/1/12
A  1/5/12
A  1/7/12
B 4/5/12
B 4/9/12
;;;;
   run;
data dif2;
   set dif;
   by id;
   dif = dif(date);
  
if first.id then dif=.F;
  
run;

View solution in original post

1 REPLY 1
data_null__
Jade | Level 19

DIF function sounds about right.

data dif;
   input id:$1. date :mmddyy.;
  
format date date.;
  
cards;
A 1/1/12
A  1/5/12
A  1/7/12
B 4/5/12
B 4/9/12
;;;;
   run;
data dif2;
   set dif;
   by id;
   dif = dif(date);
  
if first.id then dif=.F;
  
run;

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
  • 1 reply
  • 672 views
  • 0 likes
  • 2 in conversation