全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1151 2
2013-11-13
是要写一个宏,叫做%high(var),就是在数据库里找到对应变量的最大值,然后给出一个title,比如说%high(mpg)结果就是"Datsun has the highest mpg",dataset是长这个样子的
make $ mpg rep78 price foreign
AMC,22,3,2930,0
AMC,17,3,3350,0
AMC,22,.,2640,0
Audi,17,5,2830,1
Audi,23,3,2070,1
BMW,25,4,2650,1
Buick,20,3,3250,0
Buick,15,4,4080,0
Buick,18,3,3670,0
Buick,26,.,2230,0
Buick,20,3,3280,0
Buick,16,3,3880,0
Buick,19,3,3400,0
Cad.,14,3,4330,0
Cad.,14,2,3900,0
Cad.,21,3,4290,0
Chev.,29,3,2110,0
Chev.,16,4,3690,0
Chev.,22,3,3180,0
Chev.,22,2,3220,0
Chev.,24,2,2750,0
Chev.,19,3,3430,0
Datsun,23,4,2370,1
Datsun,35,5,2020,1
Datsun,24,4,2280,1
Datsun,21,4,2750,1
我写出来只能用&var来代替例子里的mpg,我不知道怎么让例子里的Datsun根据出的结果来改变,而且我写的程序只能找出一个最大值,如果有2个相同的最大值只能显示出第一个,因为我程序写的是降序排列再读第一行,所以,不知道怎么处理,求帮忙
二维码

扫码加我 拉你入群

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

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

全部回复
2013-11-13 08:44:32
data have;
input make $ mpg rep78 price foreign;
datalines;
AMC 22 3 2930 0
AMC 17 3 3350 0
AMC 22 . 2640 0
Audi 17 5 2830 1
Audi 23 3 2070 1
BMW 25 4 2650 1
Buick 20 3 3250 0
Buick 15 4 4080 0
Buick 18 3 3670 0
Buick 26 . 2230 0
Buick 20 3 3280 0
Buick 16 3 3880 0
Buick 19 3 3400 0
Cad. 14 3 4330 0
Cad. 14 2 3900 0
Cad. 21 3 4290 0
Chev. 29 3 2110 0
Chev. 16 4 3690 0
Chev. 22 3 3180 0
Chev. 22 2 3220 0
Chev. 24 2 2750 0
Chev. 19 3 3430 0
Datsun 23 4 2370 1
Datsun 35 5 2020 1
Datsun 24 4 2280 1
Datsun 21 4 2750 1
;
run;

%macro high(var);
        proc sql noprint;
                select distinct make into :make_max separated by ' and '
                from have
                having &var eq max(&var);
        quit;

        %if %SYSFUNC(FIND(&make_max,%STR( ))) NE 0 %then %do;
                %put &make_max have the highest &var..;
        %end;
        %else %do;
                %put &make_max has the highest &var..;
        %end;
%mend;

%high(mpg);
%high(rep78);
二维码

扫码加我 拉你入群

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

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

2013-11-13 10:01:07
playmore 发表于 2013-11-13 08:44
data have;
input make $ mpg rep78 price foreign;
datalines;
虽然好几句语句意思不太明白,但是非常感谢!!!我在自己研究下
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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