BookmarkSubscribeRSS Feed
My_SAS
Calcite | Level 5

I am havig a variable like this 

no

1

2

3

4

5

I want to create a new varible to move uprow up..

no New_no

1  2

2  3

3  4

4  5

5  .

3 REPLIES 3
art297
Opal | Level 21

here is one way:

data have;

  input no;

  cards;

1

2

3

4

5

;

data want;

  set have end=lastone;

  set have ( firstobs = 2 keep = No rename = (No = New_No) )

      have (      obs = 1 drop = _all_                     );

New_No = ifn(  lastone, (.), New_No );

run;

MikeZdeb
Rhodochrosite | Level 12

Hi ... another approach ...

data want;

merge have have (firstobs=2 rename=(no=new_no));

run;

PeterPanPan
Calcite | Level 5

If the data set contains only these two variables, I would do it like this:

*step 1. Delete the first row;

data output1;

set input;

if first.no then delete;

rename no=new_no;

run;

*step 2. Build new variable;

data output2;

set ouput1;

no=lag(new_no);

run;

Then deal with the first obs of no and last obs of new_no.

HTH!

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
  • 3 replies
  • 8848 views
  • 1 like
  • 4 in conversation