DATA Step, Macro, Functions and more

Is Inobs = xx the quickest way to see xx number of rows?

Reply
Contributor
Posts: 43

Is Inobs = xx the quickest way to see xx number of rows?

I usually like to view a quick 5 to 10 rows of my table so I can actually see the column names, and also get a feel of what sample data looks like.

 

I always tend to use the following:

proc sql inobs=10;
select * from table;
quit;

Is this the best way to view a quick sample of my data? From my experience, sometimes inobs=10 can generate a table really quick, and other times, it takes a long time to run.

 

 

Maybe I don't quite understand what an "inobs" does, but is this the best way to get a very fast look at my data?

Super User
Posts: 24,000

Re: Is Inobs = xx the quickest way to see xx number of rows?

It should be fine, I use the equivalent, data step version. 

 

proc print data=have (obs=10) ;
run;

It's documented here:

http://documentation.sas.com/?docsetId=sqlproc&docsetTarget=n0a693shdq473qn1svlwshfci9rg.htm&docsetV...

Trusted Advisor
Posts: 1,389

Re: Is Inobs = xx the quickest way to see xx number of rows?

As to widely varying times for 10 obs:

  1. Is the program using a multi-user system, or a client-server architecture?  These environments could generate highly variable competition for resources.
  2. Is your source data set a data set FILE, or a data set VIEW?  If it's the latter, there may be a lot of activity needed to generate 10 obs, as in:
    data table /view=table;
      do until(last.ticker);
        set quotes;
        by ticker;
        total_ask_shares=sum(total_ask_shares,ask_shares);
        total_bid_shares=sum(total_bid_shares,bid_shares);
      end;
    run;
    proc sql inobs=10;
      select * from table;
    quit
    If each stock ticker has 10,000 records in the quotes data set, then the first 10 obs in TABLE requires then first 100,000 observations in QUOTES.
Ask a Question
Discussion stats
  • 2 replies
  • 136 views
  • 0 likes
  • 3 in conversation