楼主: JoeyIMNY
跳转到指定楼层
上一主题 下一主题
收起左侧

[统计--软件] Sas advanced 4/11二战913过经

🔗
-sks 2020-4-16 10:37:41 | 只看该作者
全局:
%macro cal(x);. 1point3acres
let% x=1.25;.google  и
%do %until(&x>=2);
&x=%sysevalf(&x+0.25);.1point3acres
%put &x;
%end;
%mend cal;
%cal
哪里做错了?
回复

使用道具 举报

🔗
 楼主| JoeyIMNY 2020-4-16 22:14:49 | 只看该作者
全局:
-sks 发表于 2020-4-16 10:37
%macro cal(x);. 1point3acres
let% x=1.25;
%do %until(&x>=2);

1.第二行 %let x=1.25;
2.第四行 %let x=%sysevalf(&x+0.25);
3.你创建的是local macro variable x 不是global
对于global 的话,我自己也没有什么好方法,就是直接一个open code的 %let statement 然后在local macro 里更新它
我会这么写:

%let x=1.25;
%macro cal;
%let x=1.25;
%do %until(&x>2);
%put &x;
%put x=%sysevalf(&x+0.25);
%end;
%mend cal;
%cal. Χ

.1point3acres改进
1.先写一个open code,在global table里创建x,后面再在local里更新它. check 1point3acres for more.
2. %put &x;放在%put x=%sysevalf(&x+0.25);之前,这样可以从1.25开始输出,不然就是从1.5开始
3.%do %until(&x>2); 是>不是>=。这样可以把2输出出来,不然只输出到1.75
如果不清楚你的x是在global 还是local的话 可以在local语句里加一个 %put _user_;来看一下两个symbol table里面分别有什么variable。
do while同理。但这道题应该不能用%do x=... %to ...
回复

使用道具 举报

🔗
-sks 2020-4-17 01:48:59 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-16 22:14
1.第二行 %let x=1.25;
2.第四行 %let x=%sysevalf(&x+0.25);
3.你创建的是local macro variable x 不 ...

一只卡在run上出不来
回复

使用道具 举报

🔗
 楼主| JoeyIMNY 2020-4-17 02:13:50 来自APP | 只看该作者
全局:
-sks 发表于 2020/04/17 01:48:59
一只卡在run上出不来
我刚刚那一段是可以出来的 你试试 出不来可能是之前第四段那里有问题 不能直接写&x=… 需要%let x=…
回复

使用道具 举报

🔗
-sks 2020-4-17 02:20:50 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-17 02:13
我刚刚那一段是可以出来的 你试试 出不来可能是之前第四段那里有问题 不能直接写&x=… 需要%let x=…

能搜下ig davis_ln嘛 我w你一波  就谈论下这个问题
回复

使用道具 举报

🔗
-sks 2020-4-17 02:23:08 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-17 02:13
我刚刚那一段是可以出来的 你试试 出不来可能是之前第四段那里有问题 不能直接写&x=… 需要%let x=…
.1point3acres
你刚才发的那一段 我出现了 an exception was thrown while sending a packer to the peer
实在感谢你帮帮我
回复

使用道具 举报

🔗
-sks 2020-4-17 02:33:50 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-17 02:13
我刚刚那一段是可以出来的 你试试 出不来可能是之前第四段那里有问题 不能直接写&x=… 需要%let x=…

卡在 %cal
回复

使用道具 举报

🔗
 楼主| JoeyIMNY 2020-4-17 02:44:14 来自APP | 只看该作者
全局:
-sks 发表于 2020/04/17 02:23:08
你刚才发的那一段 我出现了 an exception was thrown while sending a packer...
我感觉是sas的问题 我自己是能跑出来的 不然你关了重新试试
回复

使用道具 举报

🔗
-sks 2020-4-17 02:57:11 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-17 02:44
我感觉是sas的问题 我自己是能跑出来的 不然你关了重新试试

%let x=1.25;
%macro cal;
%let x=1.25;. Waral dи,
%do %until(&x>2);
%put &x;
%put x=%sysevalf(&x+0.25);
%end;
%mend cal;
%cal
我重新 弄了一下 还是%cal 前都行  %cal 就run不出来了  你run的code是跟这个一摸一样嘛? 方便联系下我ins嘛
回复

使用道具 举报

🔗
 楼主| JoeyIMNY 2020-4-17 07:05:41 | 只看该作者
全局:
JoeyIMNY 发表于 2020-4-16 22:14
1.第二行 %let x=1.25;. 1point3acres.com
2.第四行 %let x=%sysevalf(&x+0.25);
3.你创建的是local macro variable x 不 ...

啊 不好意思 写错了 应该是这样:.1point3acres
%let x=1.25;
%macro cal;
%let x=1.25;.1point3acres
%do %until(&x>2);
%put &x;
%let x=%sysevalf(&x+0.25);
%end;
%mend cal;. ----
%cal
. .и
是%let x=%sysevalf(&x+0.25); 不是 %put x=%sysevalf(&x+0.25);
ins加了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表