Desktop productivity for business analysts and programmers

Number of observations in dataset

Accepted Solution Solved
Reply
Contributor
Posts: 73
Accepted Solution

Number of observations in dataset

Hello EG Users,

Is it possible to read length of dataset? I am interested in counting number of observations in a dataset and save it as macro variable, so that I can access it later in another data step.

data have;

input NumProduct 2.;

datalines;

11

21

31

41

51

;

run;

%Let havelength = 5;

data have1;

set have;

do i=1 to &havelength;

MultipleOfFive = NumProduct * 5;

output;

end;

run;

Expecting have1 to have following observations:

55

105

155

205

255

Any suggestions on how to calculate 5 in %Let macro statement so that even if number of observations change dynamically in dataset have, dataset have1 will get populated correctly?

thanks,

Dhanashree


Accepted Solutions
Solution
‎02-06-2014 05:42 PM
Respected Advisor
Posts: 3,788

Re: Number of observations in dataset

For your example program you don't need the value in a macro variable at all.  You can also get it in any data step with something like this again not need for macro variable.

if 0 then set have(drop=_all_) nobs=nobs;

data have;
   input NumProduct :2. @@;
   datalines;
11 21 31 41 51
;;;;
   run;


data have1;
   set have nobs=havelength;
   do i=1 to havelength;
      MultipleOfFive = NumProduct * 5;
     
output;
     
end;
  
run;

View solution in original post


All Replies
PROC Star
Posts: 7,437

Re: Number of observations in dataset

There are a number of ways to do that.  e.g.:

data _null_;

  if 0 then set have nobs=nobs;

  call symput('havelength',nobs);

  stop;

run;

Solution
‎02-06-2014 05:42 PM
Respected Advisor
Posts: 3,788

Re: Number of observations in dataset

For your example program you don't need the value in a macro variable at all.  You can also get it in any data step with something like this again not need for macro variable.

if 0 then set have(drop=_all_) nobs=nobs;

data have;
   input NumProduct :2. @@;
   datalines;
11 21 31 41 51
;;;;
   run;


data have1;
   set have nobs=havelength;
   do i=1 to havelength;
      MultipleOfFive = NumProduct * 5;
     
output;
     
end;
  
run;
Contributor
Posts: 73

Re: Number of observations in dataset

That works gret.. really appreciate shedding light on use of nobs!

Thanks much Smiley Happy

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 285 views
  • 0 likes
  • 3 in conversation