SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 734|回复: 3
打印 上一主题 下一主题

怎么读取一个变量的值在另外一个数据里进行循环呢?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-4-19 22:21:10 | 只看该作者

怎么读取一个变量的值在另外一个数据里进行循环呢?

如 data m;
     input x ;
     card;
     2
     6
     7
    ;
    要对m2数据中每天记录进行循环(以m中的x值(这里就是循环2,6,7    三次)),求大侠解救解救
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-4-20 22:26:49 | 只看该作者

Re: 怎么读取一个变量的值在另外一个数据里进行循环呢?

这个问题不难解决,我的方案入下:

data m;
input x;
cards;
2
6
7
;

data m2;
  set m end=last;
  nth=_n_;
  if last then call symput('tot',nth);
run;

%macro loop;
%do i= 1 %to &tot;
   proc sql noprint;
      select x
      into :y
      from m2
      where nth=&i;
   quit;
   %do j=1 to &y;
    ------------
   %end;
%end;
%mend;
%loop;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-4-21 00:59:57 | 只看该作者

Re: 怎么读取一个变量的值在另外一个数据里进行循环呢?

我刚学习用HASH;

data m;
input x ;
card;
2
6
7
;
run;


data t;
        if _N_=1 then do;
                dcl hash hh(dataset:"m");
                declare hiter iter('hh');
                hh.definekey('x');
                hh.definedata("x");
                hh.definedone();
                call missing(x);
        end;
set test1;
iter.first();
        do j=1 to x;
                output;* or whatever you want here;
        end;
do i=2 to hh.num_items;
        iter.next();
        do j=1 to x;
                output;* or whatever you want here;
        end;
end;
drop i j x;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2012-4-21 17:34:11 | 只看该作者

Re: 怎么读取一个变量的值在另外一个数据里进行循环呢?

非常谢谢各位!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 14:05 , Processed in 0.083894 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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