请选择 进入手机版 | 继续访问电脑版
楼主: wodematlab
10942 6

[原创博文] 关于sysfunc函数 [推广有奖]

  • 6关注
  • 7粉丝

教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
1914 个
通用积分
11.5800
学术水平
12 点
热心指数
19 点
信用等级
10 点
经验
10640 点
帖子
1063
精华
0
在线时间
972 小时
注册时间
2008-4-19
最后登录
2023-12-15

wodematlab 发表于 2012-5-10 22:29:42 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data test;
input region $ state $ month monyy5. headcnt expenses revenue;
format month monyy5.;
cards;
EASTERN VA FEB78 10 7800 15500
SOUTHERN FL MAR78 9 9800 13500
SOUTHERN GA JAN78 5 2000 8000
NORTHERN MA MAR78 3 1500 1000
SOUTHERN FL FEB78 10 8500 11000
NORTHERN NY MAR78 5 6000 5000
EASTERN VA MAR78 11 8200 16600
PLAINS NM MAR78 2 1350 500
SOUTHERN FL JAN78 10 8000 10000
NORTHERN NY FEB78 4 3000 4000
SOUTHERN GA FEB78 7 1200 6000
;
run;

%macro test;
    data ttest;
        %let dsid=%sysfunc(open(test));
        %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,region));
                %let variable=%sysfunc(getvarc(&dsid,&varnume));
                %put "&dsid";
                %put "&nobs";
                %put "&rc";
                %put "&varnume";
                %put "&variable";
                %put *****************;
            %end;
            %let rc=%sysfunc(close(&dsid));
        %end;
    run;
%mend test;
%test

我想问一下
%let rc=%sysfunc(fetchobs(&dsid,&i));
%let varnume=%sysfunc(varnum(&dsid,region));
%let variable=%sysfunc(getvarc(&dsid,&varnume));
具体什么含义。
二维码

扫码加我 拉你入群

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

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

关键词:sysfunc SFU Fun Sys UNC revenue

wodematlab 发表于 2012-5-10 22:30:29 |显示全部楼层 |坛友微信交流群
                %let rc=%sysfunc(fetchobs(&dsid,&i));
                %let varnume=%sysfunc(varnum(&dsid,region));
                %let variable=%sysfunc(getvarc(&dsid,&varnume));
具体代表什么意思???

使用道具

tomorrowlee 发表于 2012-5-10 22:48:32 |显示全部楼层 |坛友微信交流群
wodematlab 发表于 2012-5-10 22:30
%let rc=%sysfunc(fetchobs(&dsid,&i));
                %let varnume=%sysfunc(varnum( ...
有点看不懂

使用道具

可~乐 发表于 2012-5-11 10:07:03 |显示全部楼层 |坛友微信交流群
%let rc=%sysfunc(fetchobs(&dsid,&i));/*读取指定的第i条记录,若成功则返回0,返回-1表示已读取完所以记录*/
%let varnume=%sysfunc(varnum(&dsid,region));/*varnum是返回变量region的位置,在这变量region是第一列,所以varnume的值为1*/
%let variable=%sysfunc(getvarc(&dsid,&varnume));/*getvarc是将第i条记录的第1(因为varnume的值为1)个变量的值赋给variable,此外getvarc是针对读取字符型的变量,getvarn是针对读取数值型的变量*/

使用道具

wodematlab 发表于 2012-5-11 22:38:55 |显示全部楼层 |坛友微信交流群
可~乐 发表于 2012-5-11 10:07
%let rc=%sysfunc(fetchobs(&dsid,&i));/*读取指定的第i条记录,若成功则返回0,返回-1表示已读取完所以记录 ...
非常感谢

使用道具

nernernini 发表于 2012-5-12 04:03:19 |显示全部楼层 |坛友微信交流群
good to learn, it is easy to get lost.

使用道具

_linzhiheng 发表于 2014-6-29 21:42:45 |显示全部楼层 |坛友微信交流群
谢谢,我也学到东西了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 17:28