|
<p>重新整理一下:</p><p>下面整个是一个宏:</p><p>%macro one(q);<br/> filename fam pipe "zcat /home/data/ces_cbo/ffile&q..Z";<br/> data disk.fam&q;<br/> infile fam lrecl=1478;<br/> input<br/> newid 1-7<br/> cutenur 10<br/> repstat 14<br/> totwt 19-29</p><p>proc means mean sum data=disk.fam&q; weight adjwt;<br/>run;<br/>%mend;</p><p>很明显,这是在UNIX或LINUX操作系统中。这个宏的意思是,首先从目录/home/data/ces_cbo/中读入压缩文件 ffile1.Z ffile2.Z ...到SAS数据集 disk.fam1,disk.fam1,... (注意对应关系)。每一个数据集都只有四个变量,newid, cutenur, repstat he totwt. 然后对每一个数据集运行过程 proc means。 这个过程将会输出每一个数据集中每一个变量的和以及平均值。q是一个宏变量,&q就是这个宏变量的值。</p><p>filename fam pipe "zcat /home/data/ces_cbo/ffile&q..Z"; 其中pipe是用在UNIX或LINUX操作系统中的。双引号保证了里面的宏变量可以兑现其值,否则系统将试图搜寻文件ffile&q..Z。双引号里面是一个UNIX命令,去查一下zcat就知道了。<br/></p>
|