SAS中文论坛

标题: SAS宏在临床试验中应用-返回数据集的观测个数 [打印本页]

作者: shiyiming    时间: 2005-9-7 15:55
标题: SAS宏在临床试验中应用-返回数据集的观测个数
[code:b1f31]
*----------------------------------------------*
returns the number of observations in a dataset
*----------------------------------------------* ;

%macro obscnt (data) /des='returns number obs from a SAS dataset' ;
   %local data data_id rc ;

   %if &data = %str() %then %let data = %data(&syslast) ;
   %let data_id = %sysfunc(open(&data)) ;
   %if &data_id %then %do ;
      %sysfunc(attrn(&data_id, nobs))
   %end ;
   %else %do ;
      %put WARNING: Open for dataset %data(&data) failed ;
      %put WARNING: Macro OBSCNT will return the number of observations as missing. ;
      %put %sysfunc(sysmsg()) ;
      .
   %end ;
   %let rc = %sysfunc(close(&data_id)) ;
%mend obscnt ;

data test ;
   var='1' ;
run ;

%put NOTE: The number of observations in WORK.TEST is %obscnt(test) ;
%put NOTE: The number of observations in sashelp.class is %obscnt(sashelp.class) ;[/code:b1f31]
作者: shiyiming    时间: 2005-9-14 15:09
标题: 还可以用SQL语句啊
proc sql noprint;
  select count(*)
  into: [i:4bb58]dataset_obs[/i:4bb58]
  from [i:4bb58]DS_NAME[/i:4bb58];
quit; <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
作者: shiyiming    时间: 2006-12-28 11:09
标题: to collen
为什么要这么麻烦呢?




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2