BookmarkSubscribeRSS Feed
deleted_user
Not applicable
My question is probably very naive as I am a newbie:

Say I have a data set with one variable and 10 observations - call this variable a "base". I want to create a new variable based on the existing data set call this variable "new". Observations in "new" should be calculated from "base" - say "new" = "base" (observation i+1) * "base" (observation i).

Another question is how to create a new variable that will include all the observations from the base starting with observation i from "base" ?
2 REPLIES 2
deleted_user
Not applicable
Found the answer in different Forum/Category

here is the link to Cynthia@SAS post:
http://support.sas.com/forums/thread.jspa?threadID=1400&tstart=90
RafiRahi
Fluorite | Level 6

Hi rossu12,

I have put some code below which should answer your query. If anything is not clear let me know.

All the best.

Rafi

* Example dataset based on the information you gave;

DATA original;

  DO base= 1 TO 10;

    OUTPUT;

  END;

RUN;

* Create new variable 'new' based on variable 'base', _N_ is the automatic macro variable which hold the value of observation number that is being processed from

  input dataset (original), It can be used to count observation number as well;

DATA newds;

  SET original;

  new = (base*(_N_+1)) *  (base*(_N_));

RUN;

Rafi Rahi

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 2 replies
  • 1279 views
  • 1 like
  • 2 in conversation