Help using Base SAS procedures

Lag variable

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 75
Accepted Solution

Lag variable

Hello,

I would like to create a lag variable for D based on qtr and mgrno. Obviously LAG doesn't work here because it doesn't recognize different mgrno.

Any ideas on this?

Many thanks in advance.


Accepted Solutions
Solution
‎05-17-2013 07:23 PM
Super User
Super User
Posts: 6,500

Re: Lag variable

Sort the data in the right order then LAG() function will work.

data want ;

  set have ;

  by mgrno ticker qtr ;

lagd=lag(d);

if first.ticker then lagd=.;

run;

View solution in original post


All Replies
Super Contributor
Posts: 418

Re: Lag variable

If you can, give an example of what you actually want with you data as an output.  I am not worrking what you mean by lag of qrt and mgrno, and your statement about lag.

Example, your qtr of 1980-4 has the mgrno 260 40 times. Do you want the D field lagged by 1 onto each of the 260 fields (so row 1 gets lagged into row 2). Or did you want the data structured as is to be lagged, regardless of the order or MGRNO?

Frequent Contributor
Posts: 75

Re: Lag variable

What I would like to do is to have the Lag Value of D for each mgrno for each stock separately.

Each stock has many investors. I want the lagged value for the particular investor.

So for example

1981-1  520 AA should have the value of 1980-4 520 AA

1981-1  835 AA should have the value of 1980-4 835 AA.

I hope you can understand what I mean.

Many thanks.

Solution
‎05-17-2013 07:23 PM
Super User
Super User
Posts: 6,500

Re: Lag variable

Sort the data in the right order then LAG() function will work.

data want ;

  set have ;

  by mgrno ticker qtr ;

lagd=lag(d);

if first.ticker then lagd=.;

run;

Frequent Contributor
Posts: 75

Re: Lag variable

Many thanks Tom!

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 191 views
  • 0 likes
  • 3 in conversation