BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
user24feb
Barite | Level 11


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

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User

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

2 REPLIES 2
Ksharp
Super User

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

data_null__
Jade | Level 19

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

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 1139 views
  • 0 likes
  • 3 in conversation