BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sasphd
Lapis Lazuli | Level 10

Hello, 

I want the program not calculate flux and age if it is the first secid. I write this but it does not work. it still calculate for the first secid. What is wrong with this if first.secid then call missing(flux, age);

thanks

 data ageyear;
 set inception;
Age = yrdif(Inception_date, sas_date,'Actual');
flux=(TNA-lag1(TNA)*(1+mret))/(lag1(TNA));
if first.secid then call missing(flux, age);

run;
1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

Then you need the BY statement.

--
Paige Miller

View solution in original post

3 REPLIES 3
PaigeMiller
Diamond | Level 26

The FIRST. construct in a SAS data step requires a BY statement.

 

Also, it's not 100% clear to me what your requirement is ... do you mean first record in the data set, or first record of a block of SECID? If it is first record in the data set use

 

if _n_=1 then ...
--
Paige Miller
sasphd
Lapis Lazuli | Level 10

 

I need to put the  first record of a block of SECID to missing value.

Thanks

PaigeMiller
Diamond | Level 26

Then you need the BY statement.

--
Paige Miller

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
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
  • 1870 views
  • 2 likes
  • 2 in conversation