SAS分配声明和条件执行

时间:2014-02-25 11:10:20

标签: sas

我最近开始学习SAS程序的赋值语句和条件执行。我还是个初学者。我有几个问题要做,但我真的被卡住了。我需要帮助。

给定长度为1的字符变量Y,创建一个新变量X7,存储表中定义的值:

 Y                     X8
'E'                  'East'
'S'                  'South'
'W'                  'West'
'N'                  'North'
Other value            ''

1 个答案:

答案 0 :(得分:1)

我可能在这里误解了这个问题,但看起来你只是想根据某些预定条件创建一个新变量。如果这是你的目标,那么有很多方法可以做到这一点。既然你说你是SAS的新手,我会给出这个问题的两个基本答案:

直接前瞻性条件IF然后Else陈述:

data test; 
  input Y $1.; 

    length x7 $5; 
          if Y="E" then X7="East"; 
     else if Y="S" then x7="South"; 
     else if Y="W" then x7="West"; 
     else if Y="N" then x7="North"; 
     else x7="";   

   datalines4;
E
N
S
E
_
W
?
;;;;
run;
proc print data=test; 
run; 

注意:如果没有length语句,x7将默认为其第一个输入的长度。在这种情况下,$ 4。

SAS的另一项基本技术是使用格式:

首先创建您的格式。 (如果它是一个小的列表,一个简单的值语句将正常工作,否则查看格式过程中的cntlin =选项):

proc format;
 Value $DI 
 'E'='East'
 'S'='South'
 'W'='West'
 'N'='North'
 Other=' ';
 run; 

然后在数据步骤中你可以使用put()函数来应用;

data test2; 
  set test;
   x7_2=put(y,$di.); 
 run; 
proc print data=test2; run; 

希望能让你顺利上路。 如果我误解了,请澄清。 谢谢! B'/ P>