SAS:循环 - 如何将条件中的变量放入其他变量的条件中

时间:2012-03-09 15:41:12

标签: loops sas

使用循环函数,我喜欢将条件中不同列中的变量放入数据中的另一个变量。我在编写正确的循环语句时遇到问题,因为重定位变量会继续运行到下一行。有人可以指出我没有得到的东西吗?  我希望我的变量像这样: ft @ 10 m1 @ 30 m2 @ 31 m3 @ 32 m4 @ 34 o2 @ 35 o5 @ 36

数据fttryone;

输入ft m1 o2 m3 m4 o5;

datalines;

1 2 3 4 5 6

2 7 8 9 1 1

3 1 3 4 5 2

4 6 7 8 9 2

运行;

数据 null ;

设置fttryone;

文件'C:\ fttry18.txt';

放@ 10英尺

   @30 M1 

   @31 M3 

   @32 M4 

做i = 0到4;

J = * 2;

如果ft = i那么

把@ 35 + j o2

把@ 36 + j o5;

运行;

1 个答案:

答案 0 :(得分:3)

您的代码有三个问题:

  1. 要将“重定位”变量(O2和O3)保留在输出.txt文件的同一行,您需要在放置变量M4的代码行末尾包含两个符号(@@)。
  2. 您尚未使用END语句关闭DO循环。
  3. 您不需要“@ 36 + j o5;”前面的“PUT”。
  4. 请尝试以下代码:

    data _null_;
        set fttryone;
        file 'C:\fttry18.txt';
        put   @10 ft
              @30 M1
              @31 M
              @32 M4 @@
         ;
         do i=0 to 4;
           if ft=i then do;
              j=i*2;
              put @35+j o2
                  @36+j o5;
           end;
        end;
     run;