To whom it may concern,
I have a column of data that looks like column 1 below. What kind of code do I need to run to get column 2; column 2 is column 1 staggered, so that I can eventually take the first difference between columns 1 and 2.
Any help would be appreciated.
Christos
Column 1 Column 2 First Difference
1 [Blank] 1-[Blank]
2 1 2-1=1
3 2 3-2=1
4 3 4-3=1
5 4 5-4=1
6 5 6-5=1
You need the LAG() function, or better still the DIF() function which will directly calculate the difference between successive observations.
diff1 = dif(x) ;
The first row will return a null value.
Richard in Oz
You need the LAG() function, or better still the DIF() function which will directly calculate the difference between successive observations.
diff1 = dif(x) ;
The first row will return a null value.
Richard in Oz
Richard should get the credit for the correct answer but, in case Richard was sufficiently clear:
data want;
input column1;
column2=lag(column1);
first_difference=dif(column1);
cards;
1
2
3
4
5
6
;
Thaks to both! Very helpful.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.