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

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register 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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 501 views
  • 2 likes
  • 2 in conversation