全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2807 3
2012-04-07
悬赏 30 个论坛币 已解决
%let dsid=%sysfunc(open(lg.origin_num_var));
        %if &dsid gt 0 %then %do;
        %let nobs=%sysfunc(attrn(&dsid,nobs));
        %do i=1 %to &nobs;
                %let rc=%sysfunc(fetchobs(&dsid,&i));
                %let varnume=%sysfunc(varnum(&dsid,name));
                %let variable=%sysfunc(getvarc(&dsid,&varnume));

求解释这段程度的意思

最佳答案

freerunning_sky 查看完整内容

/*打开数据集lg.origin_num_ var*/ %let dsid=%sysfunc(open(lg.origin_num_var)); /*打开数据集无误(&dsid>0表示无误)*/ %if &dsid gt 0 %then %do; /*取数据集lg.origin_num_var的行数*/ %let nobs=%sysfunc(attrn(&dsid,nobs)); /*循环从第一行开始读到最后一行*/ %do i=1 %to &nobs; /*打开第&i行*/ %let rc=%sysfunc(fetchobs(&ds ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-4-7 20:33:43
/*打开数据集lg.origin_num_ var*/
%let dsid=%sysfunc(open(lg.origin_num_var));
        /*打开数据集无误(&dsid>0表示无误)*/
        %if &dsid gt 0 %then %do;
        /*取数据集lg.origin_num_var的行数*/
        %let nobs=%sysfunc(attrn(&dsid,nobs));
        /*循环从第一行开始读到最后一行*/
        %do i=1 %to &nobs;
                /*打开第&i行*/
                %let rc=%sysfunc(fetchobs(&dsid,&i));
                /*返回变量name在数据集lg.origin_num_var的位置*/
                %let varnume=%sysfunc(varnum(&dsid,name));
               /*返回变量name的第&i行的值(如果name是字符型,则用getvarc,数值型用getvarn*/
                %let variable=%sysfunc(getvarc(&dsid,&varnume));
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-8 11:05:18
复制代码
帮看一下这段代码吧,log提示:

ERROR: %SYSFUNC 或 %QSYSFUNC 宏函数引用的函数 FETCHOBS 中的参数 1 不是数字。
ERROR: %SYSCALL、%SYSFUNC 或 %QSYSFUNC 参数列表中检测到无效参数。%SYSCALL 语句或 %SYSFUNC 以及 %QSYSFUNC 函数引用将终止执行。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-4-8 12:13:55
%let rc=%sysfunc(fetchobs(&disd,&i));
这一行的&disd它写错了,应该是&dsid
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群