Loops SAS:循环如何将条件中同一行中的变量放入其他变量

Loops SAS:循环如何将条件中同一行中的变量放入其他变量,loops,sas,Loops,Sas,使用loop函数,我喜欢将不同列中的变量置于数据中另一个变量的条件中。我在编写右循环语句时遇到困难,因为重定位变量一直转到下一行。有人能指出我没有得到什么吗? 我希望我的变量如下: 英尺,10米,30米,31米,32米,34氧,35氧,36氧 数据ftryone 输入ft m1 o2 m3 m4 o5 数据线 123456 278911 313452 4677892 ) 运行 数据为空 设置fttryone 文件“C:\fttry18.txt” 放置在10英尺处 @30 M1 @

使用loop函数,我喜欢将不同列中的变量置于数据中另一个变量的条件中。我在编写右循环语句时遇到困难,因为重定位变量一直转到下一行。有人能指出我没有得到什么吗? 我希望我的变量如下: 英尺,10米,30米,31米,32米,34氧,35氧,36氧

数据ftryone

输入ft m1 o2 m3 m4 o5

数据线

123456

278911

313452

4677892

)

运行

数据为空

设置fttryone

文件“C:\fttry18.txt”

放置在10英尺处

   @30 M1 

   @31 M3 

   @32 M4 
i=0到4

j=i*2

如果ft=i,则

放置@35+j o2

放置@36+j o5


运行

您的代码有三个问题:

  • 要使“重定位”变量(O2和O3)保持在output.txt文件的同一行上,需要在放置变量M4的代码行末尾包含两个符号(@@)
  • 您还没有用END语句结束DO循环
  • 你不需要在“@36+jo5;”前面加上“PUT”
  • 请尝试以下代码:

    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;    
    

    代码有三个问题:

  • 要使“重定位”变量(O2和O3)保持在output.txt文件的同一行上,需要在放置变量M4的代码行末尾包含两个符号(@@)
  • 您还没有用END语句结束DO循环
  • 你不需要在“@36+jo5;”前面加上“PUT”
  • 请尝试以下代码:

    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;    
    

    你能澄清一下这个问题与你昨天问的问题有何不同吗?请格式化您的代码。我更新了关于您的另一个问题“SAS:列位置重新排列”的答案……您是否尝试使用尾随@符号来阻止换行?您能否澄清此问题与您昨天提出的问题有何不同?请格式化您的代码。我更新了关于您的另一个问题“SAS:列位置重新排列”的答案……您是否尝试使用尾随@符号来阻止换行?谢谢。我刚看到你的答案。另一种解决这个问题的方法,我不知道!谢谢你,我会的。我刚看到你的答案。另一种解决这个问题的方法,我不知道!