楼主: 小鳄鱼a
5958 14

如何查看循环结构中的宏变量取值情况 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2014-10-15 15:36:48 |AI写论文
40论坛币
比如x,每一次的循环,x作为宏变量可能会被赋予了不同的取值。
思路一是可以把历次宏变量输入到一个数据集中,当然应该要表明在第几次循环,所以在数据集中应该至少有两个变量
思路二是用put语句,然后再用什么方法在log窗口中把这个语句的多次循环取值情况给提取出来  看看历次的取值情况


谢谢

关键词:循环结构 put语句 什么方法 数据集 Log 如何

沙发
小鳄鱼a 发表于 2014-10-16 16:02:26
求高手

藤椅
pobel 在职认证  发表于 2014-10-16 16:25:31
楼主不是已经有思路了么?那只需要写个例子就可以了。

板凳
zhengbo8 发表于 2014-10-16 16:27:11
小鳄鱼a 发表于 2014-10-16 16:02
求高手
  1. options symbolgen;
  2. %let a=0;
  3. %macro test;
  4. %do i=1 %to 5;
  5.         %let a=%eval(&i.);
  6. %end;
  7. %mend;
  8. %test;
复制代码
{:3_48:}求币啦啦~~


已有 1 人评分论坛币 收起 理由
小鳄鱼a + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

报纸
小鳄鱼a 发表于 2014-10-16 20:08:55
pobel 发表于 2014-10-16 16:25
楼主不是已经有思路了么?那只需要写个例子就可以了。
请问如果想搜集error warning在一起看怎么写啊

地板
小鳄鱼a 发表于 2014-10-16 20:12:18
zhengbo8 发表于 2014-10-16 16:27
求币啦啦~~
不好意思,我说的是这么一种情况,每次循环,显示的宏变量x都是不变的。最后,能否统一的把x取过的值都放在一起去呈现。是不是可以用put  ,  后面写一串语句。这个样的话再调用log窗口中有相同前缀的字符串

7
小鳄鱼a 发表于 2014-10-16 20:19:08
pobel 发表于 2014-10-16 16:25
楼主不是已经有思路了么?那只需要写个例子就可以了。
新手   不太懂   而且关键不知道在哪里可以找到相类似的解决方法

8
pobel 在职认证  发表于 2014-10-17 07:50:40
小鳄鱼a 发表于 2014-10-16 20:19
新手   不太懂   而且关键不知道在哪里可以找到相类似的解决方法
在需要的位置使用%put语句,是最基本的查看宏变量值的方法。

如果是要把每次循环中宏变量值保存到数据集中:
%macro test;
    data x;
           %do i=1 %to 19;
               %let x=%sysfunc(ranuni(0));
                   index_i=&i;
                   x_value=&x;
                   output;
                %end;
        run;
%mend;

%test

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
小鳄鱼a + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
小鳄鱼a 发表于 2014-10-17 10:08:51
pobel 发表于 2014-10-17 07:50
在需要的位置使用%put语句,是最基本的查看宏变量值的方法。

如果是要把每次循环中宏变量值保存到数据 ...
谢谢,能否有这么一种情况,每次循环,显示的宏变量x都是不变的。最后,能否统一的把x取过的值都放在一起去呈现。是不是可以用put  ,  后面写一串语句。这个样的话再调用log窗口中有相同前缀的字符串

10
pobel 在职认证  发表于 2014-10-17 10:27:14
小鳄鱼a 发表于 2014-10-17 10:08
谢谢,能否有这么一种情况,每次循环,显示的宏变量x都是不变的。最后,能否统一的把x取过的值都放在一起 ...
不太明白你这句:"能否有这么一种情况,每次循环,显示的宏变量x都是不变的。"

%macro test;
      %let x_values=;
           %do i=1 %to 5;
               %let x=%sysfunc(ranuni(0));
                   %let x_values=&x_values &x;
                %end;
        %put Values of X: &x_values;
%mend;

%test

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

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