ourhomeqs
最近正在学sas,有几个问题一直没在书上找到明确的答案,请各位哥哥姐姐帮个忙。
问题1:关于sas的指针问题,比如我要读入某个数据集的特定变量特定行的值,该怎么读?
问题2:如何复制观测。比如我有一个数据集,其中某个变量只有第一行有数据,其余行缺失,如何把该变量第一行的数据全部复制到其他行里去,用那个lag好象不好使。
十分感谢。
amitywei
关于问题1和2的解答如下。
例:
data a;
input id name $ age weight grade;
datalines;
1 amy 12 35 4
2 anton 13 43 .
3 banny 13 50 .
4 tom 16 65 .
;
run;
/*问题1:如取第2行和第3行,取name和age两个变量*/
data b;
set a(keep=name age);
if _n_=2 or _n_=3 then output;
run;
/*问题2:把第一行grade的取值复制到下面各行*/
data c;
set a;
retain newgrade;
if _n_=1 then
newgrade=grade;
run;
ourhomeqs
谢了
ourhomeqs
再问下,那个_n_ 是不是sas的一个特殊格式,表示sas的行
amitywei
_n_是系统宏变量,并不是简单的表示SAS的行。因为SAS读取数据表时是一行一行读的,读到哪一行,系统宏变量的值就是那一行的行数。它在读数的过程中是不断变化的,也只在读数的过程中存在,读完了就消失了。