楼主: playmore
2501 4

[问答] 请问SAS有求一组数的最大公约数的函数吗? [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2011-9-28 10:07:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:公约数 公约数

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
YueweiLiu 发表于 2011-9-28 10:16:17
  1. data _null_;
  2.    x=gcd(10, 15);
  3.    put x=;
  4. run;
复制代码

藤椅
playmore 发表于 2011-9-28 10:50:44
YueweiLiu 发表于 2011-9-28 10:16
嗯,多谢

我现在有一组宏变量,var1, var2 ,....,数量不定,总数保存在另一个宏变量varnum中
如果求得这些宏变量的最大公约数啊GCD(var1, var2, ...)?不太会写这个程序
望赐教,谢谢!
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

板凳
YueweiLiu 发表于 2011-9-28 11:26:36
不知道你是想把结果放到宏变量还是数据集中,要是前者可以这样:
  1. %let var1=9;
  2. %let var2=21;
  3. %let var3=63;
  4. %let nvar=3;

  5. %macro gcd;
  6.         %do i=1 %to &nvar;
  7.                 %if &i=1 %then %let nums=&&var&i.;
  8.                 %else %let nums=%sysfunc(catx(%str(,),&nums.,&&var&i.));
  9.         %end;
  10.         %let gcd=%sysfunc(gcd(&nums));
  11.         %put &gcd;
  12. %mend;
  13. %gcd;
复制代码
要是后者,可以这样:
  1. %let var1=9;
  2. %let var2=21;
  3. %let var3=63;
  4. %let nvar=3;

  5. %macro gcd;
  6. data want;
  7.         %do i=1 %to &nvar;
  8.                 %if &i=1 %then %let nums=&&var&i.;
  9.                 %else %let nums=%sysfunc(catx(%str(,),&nums.,&&var&i.));
  10.         %end;
  11.         gcd=gcd(&nums);
  12. run;
  13. %mend;
  14. %gcd;
复制代码

报纸
playmore 发表于 2011-9-28 12:01:56
YueweiLiu 发表于 2011-9-28 11:26
不知道你是想把结果放到宏变量还是数据集中,要是前者可以这样:要是后者,可以这样:
嗯,多谢大牛

我之前也想到了可以用catx连一下,只是这个逗号作分隔符没想到怎么办
你这个%str()真不错
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 16:19