BookmarkSubscribeRSS Feed
CFF
Calcite | Level 5 CFF
Calcite | Level 5

Hi

I have 1 variabel A. I need to create a new variabel B thats i created through the retain function. For the first observation must B must be equal to 1.

For all the other values B=1-B*A - where B is the retained result.

As an example:

Data have:

A:

0,5

0,5

0,5

Data want

A:       B

0,5     1

0,5     0,5 (calculated as: 1-1*0,5)

0,5     0,75 (calculated as: 1-0,5*0,5)

Best regards

3 REPLIES 3
ballardw
Super User

data want;

     set have;

     retain b 1;

     if _n_ > 1 then b= 1- b*a;

run;

KrisNori
Obsidian | Level 7

DATA A10Aug2015_1;

  retain B 1;

  INPUT A;

  OUTPUT;

  B=1-B*A;

DATALINES;

0.5

0.5

0.5

;

RW9
Diamond | Level 26 RW9
Diamond | Level 26

I am not clear on what the dataset A is for, it doesn't add anything to the mix.  Adjust the do loop for number of iterations:

data want (drop=i);

  retain b 1;

  do i=1 to 5;

    b=1 - (b * 0.5);

    output;

  end;

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
  • 3 replies
  • 1922 views
  • 0 likes
  • 4 in conversation