今天在看SAS的时候遇到了_N_, 不是太明白是几个意思,在网络上搜了一下,但是好像没有说的很明白的,搜了一些英文资料,并问了问同事,现在整理如下:
_N_系统参数,在DATA步中自动产生,不写入数据集中,在该DATA步可以使用,DATA步结束就自动收回该变量,并且_N_不可修改。该参数就是在DATA步读入数据时记录数据条数。
使用比较多的就是用_N_合并数据集。
data out ;
if _n_ = <value> then set data1 ;
set data2 ;
run ;
用一个具体的例子解释一下;data A; *生成结果集,data步本身隐含循环取数;
if _n_=1 then set avg; * avg只有一行记录,所以只取第一条记录,由于没有到达文件结尾,因而没有结束;
set tot; *需要合并的数据集,在这个数据集的每行记录里面增加了avg数据集里面的变量;
run;
avg数据集里面数据:
avg
10
tot数据集:
id num
1 15
2 5
A结果:
avg id num
10 1 15
10 2 5
我也尝试使用merge来实现,但是合并之后只有第一行有avg的数据,其他行没有,所以为了简单,还是用这个语句比较好,merge还需要额外的工作才可以。