SAS中文论坛

标题: To Ahuige [打印本页]

作者: shiyiming    时间: 2010-3-15 20:50
标题: To Ahuige
Ahuige,您好.
恕小弟无理了,主要是因为小弟解决问题的心切,考虑到论坛里的高手一般都不理会我们这些CN,故只好点了.
Ahuige,请问应该怎么记录数据卡里的第一观测值,让它应用到其它过程步?在同一个data步的话,小弟用这个:if _N_=1 then a=var;是可以,但应该怎么应用到其它过程步呢?谢谢
作者: shiyiming    时间: 2010-3-15 21:16
标题: Re: To Ahuige
对啊。直接求助于版主,至少可以得到一个确保无误的答案。轮到我们这些小虾米的话,那就是大嘴一张,说到哪儿算哪儿了。
作者: shiyiming    时间: 2010-3-15 21:27
标题: Re: To Ahuige
呵呵,jingju11,您误会了,真没有这个意思,主要是因为前几次我在这问了几个问题基本都没人回答.所以就随便找了个人问了,不要见怪了.那我再重新改下我的问题,有请各位solve了.


请问应该怎么记录数据卡里的第一观测值,让它应用到其它过程步?在同一个data步的话,小弟用这个:if _N_=1 then a=var;是可以,但应该怎么应用到其它过程步呢?请各位大吓帮忙(当然包括jingju11,其实我知道您也是个大吓),谢谢!!
作者: shiyiming    时间: 2010-3-15 21:57
标题: Re: To Ahuige
Good question
作者: shiyiming    时间: 2010-3-16 10:30
标题: Re: To Ahuige
SET SASHELP.CLASS(OBS=1);
是不是这个意思?

如果是动态的生成什么指示变量,就用PROC SQL。不知道是不是这个意思

proc sql;
    select *, (monotonic()=1)*weight as conditionwt
    from sashelp.class
    ;
作者: shiyiming    时间: 2010-3-16 20:12
标题: Re: To Ahuige
for example:
data name;
input var1 var2@@;
datalines;
1 2
3 4
5 6
;
run;
就要保存datalines里的第一个观测值(在这里是1)和最的一个观测值(在这里是6),将这两个保存的数值应用到其它过程步.(主要是因为datalines里数据会更换,所以想有一个变量保存始末值).
作者: shiyiming    时间: 2010-3-16 20:41
标题: Re: To Ahuige
[code:tr1wuc61]data name;
        input var1 var2;
datalines;
1 2
3 4
5 6
;
data _null_;
        set name end=eof;
        if _n_=1 then call symputx('start',var1);
        if eof then call symputx('end',var2);
run;
%put NOTE: start=&start end=&end;
/* proc step */ [/code:tr1wuc61]
作者: shiyiming    时间: 2010-3-16 20:51
标题: Re: To Ahuige
to ahuige
老大,monotonic()函数在SQL里很好用,但我怎么在帮助里找不到这个函数呢?
作者: shiyiming    时间: 2010-3-17 00:34
标题: Re: To Ahuige
to hopewell
it was experimental and is now documented in Doc for v9.2
作者: shiyiming    时间: 2010-3-17 09:34
标题: Re: To Ahuige
谢谢,我找找
作者: shiyiming    时间: 2010-3-17 14:12
标题: Re: To Ahuige
Are there have other solutions in sas8.1? Maybe the procedure of Ahuige is effective in sas9.2. Looking forward to be solved in sas8.1!!!
作者: shiyiming    时间: 2010-3-29 13:59
标题: Re: To Ahuige
using CALL EXECUTE in a data step. for example, like the following code, where %ada & %real are two macros for boost algorithm involking a data step for computation, respectively

[code:3k4wu3cg]
     data  _boostinfo;
              set &outdsn.(firstobs=1  obs=1);
              dsn="&dsn";
             %if (&type eq 1) %then %do;                                               
                  call execute('%ada(' || compress(dsn)         || ','
            %end;
            %else %do;                                             
                  call execute('%real(' || compress(dsn)         || ','
           %end;
                                       || compress(cut_val)    || ','
                                       || compress(varname)  || ','
                                       || compress(c_L)         || ','
                                       || compress(c_R)         || ');'
                                  );
             drop dsn;
      run;                         

[/code:3k4wu3cg]




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