DATA Step, Macro, Functions and more

Quickest way to get a single observation from a dataset

Accepted Solution Solved
Reply
Super Contributor
Posts: 336
Accepted Solution

Quickest way to get a single observation from a dataset


Hello!

I need to create a dataset containing a single observation from a large dataset and create a macro-variable. Is the point option the quickest way to do this?

Options Fullstimer;
%Let Pos=1000;

Data A (Drop=i);
  Do i=1 To 1000000;
    X=Ranuni(1); Output;
  End;
Run;

Data B;
  Obs=&Pos.;
  Set A Point=Obs;
  Call SymputX('MVB',X);
  Output;
  Stop;
Run;
%Put **&MVB.**;

Data D;
  Set A (FirstObs=&Pos. Obs=&Pos.);
  Call SymputX('MVD',X);
Run;
%Put **&MVD.**;

Thanks&kind regards


Accepted Solutions
Solution
‎10-24-2014 11:54 AM
Super User
Posts: 9,687

Re: Quickest way to get a single observation from a dataset

Yeah. Maybe, it is random access method. And you can also try this way, compare them who is faster .

%let dsid=%sysfunc(open(sashelp.class,i));
%global name;
%syscall set(dsid);
%let rc=%sysfunc(fetchobs(&dsid,10));
%let rc=%sysfunc(close(&dsid));

%put &name;

Xia Keshan

View solution in original post


All Replies
Solution
‎10-24-2014 11:54 AM
Super User
Posts: 9,687

Re: Quickest way to get a single observation from a dataset

Yeah. Maybe, it is random access method. And you can also try this way, compare them who is faster .

%let dsid=%sysfunc(open(sashelp.class,i));
%global name;
%syscall set(dsid);
%let rc=%sysfunc(fetchobs(&dsid,10));
%let rc=%sysfunc(close(&dsid));

%put &name;

Xia Keshan

Respected Advisor
Posts: 3,777

Re: Quickest way to get a single observation from a dataset

Looks like you've answered your own question.  What did the FULLSTIMER stats show in your log.

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 184 views
  • 0 likes
  • 3 in conversation