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

Hi All,

I have a dataset and want to created a new variable, POST, based on the information I have. The data includes information on ticker, year, and Restate. I want to create a new variable, POST, which will take value 1 for period post restatement (period after Restate =1). That is, if my sample data is as follows:

DATA HAVE;

  INPUT  TICKER $ year RESTATE ;

CARDS;

A  2000    0

A  2001     0

A  2002     0

A  2003     0

A  2004     1

A  2005     0

A  2006      0

B  2000    0

B  2001    0

B  2002    1

B  2003    0

B  2004    0

B  2005    0

B  2006     0

;

RUN;

For firm A, restatement occurred in 2004. I want POST to be 0 for period prior to 2004 and 1 for period 2004 onwards.  Similarly for B, POST will be 0 for period prior to 2002 and 1 for period post restatement. That is, the output should be:

ticker year     restate     POST

A  2000           0               0

A  2001          0               0

A  2002          0               0

A  2003          0               0

A  2004          1               1

A  2005          0               1

A  2006          0               1

B  2000          0               0

B  2001          0               0

B  2002          1               1

B  2003          0               1

B  2004          0               1

B  2005          0               1

B  2006          0               1

If a company has two restatement in the sample period, then I want POST to be 2 after the second restatement. For instance if the data is as follows:

DATA HAVE;

  INPUT  name $ year RESTATE ;

CARDS;

A  2000    0

A  2001     1

A  2002     0

A  2003     0

A  2004     1

A  2005     0

A  2006      0

;

RUN;

The output should be

ticker year     restate     POST

A  1999           0               0

A  2000           0              0

A  2001          1               1

A  2002          0               1

A  2003          0               1

A  2004          1               2

A  2005          0               2

A  2006          0               2

I would appreciate if someone could share a code with me.

Thank you for your time.

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

Simple, POST is the cumulative sum of RESTATE within TICKER :

data want;

set have; by ticker;

if first.ticker then post = 0;

post + restate;

run;

PG

PG

View solution in original post

2 REPLIES 2
PGStats
Opal | Level 21

Simple, POST is the cumulative sum of RESTATE within TICKER :

data want;

set have; by ticker;

if first.ticker then post = 0;

post + restate;

run;

PG

PG
shalmali
Calcite | Level 5

Thanks PG Stat for the prompt reply.

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!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 2 replies
  • 988 views
  • 0 likes
  • 2 in conversation