楼主: superbosslbls
1189 2

[问答] 无耻的伸手党求助一个程序 [推广有奖]

  • 0关注
  • 0粉丝

已卖:33份资源

博士生

24%

还不是VIP/贵宾

-

威望
0
论坛币
252 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12389 点
帖子
276
精华
0
在线时间
205 小时
注册时间
2012-12-31
最后登录
2016-1-30

楼主
superbosslbls 发表于 2013-11-13 07:04:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是要写一个宏,叫做%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个相同的最大值只能显示出第一个,因为我程序写的是降序排列再读第一行,所以,不知道怎么处理,求帮忙
二维码

扫码加我 拉你入群

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

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

关键词:伸手党 Foreign highest dataset Title highest 数据库 最大值 price title

沙发
playmore 发表于 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);
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

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

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 23:06