SAS赋值语句与条件执行

SAS赋值语句与条件执行,sas,Sas,我最近开始学习SAS程序的赋值语句和条件执行。我还是个初学者。我有几个问题要问,但我真的被卡住了。我需要帮助 给定长度为1的字符变量Y,创建一个新变量X7,存储表中定义的值: Y X8 'E' 'East' 'S' 'South' 'W' 'West' 'N' 'North' Other value

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

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

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

我可能对这个问题有点误解,但看起来您只是想基于某些预定义条件创建一个新变量。如果这是你的目标,有无数的方法可以做到这一点。既然你说你是SAS的新手,我就给你两个基本的答案:

直接条件IF-Then-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中的另一项基本技术是使用格式:

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

然后在一个数据步骤中,可以使用put()函数进行应用

data test2; 
  set test;
   x7_2=put(y,$di.); 
 run; 
proc print data=test2; run; 
希望这能让你走上正轨。 如果我误解了,请澄清。 谢谢 b

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