测试变量是否存在

| 我想测试一个变量是否存在,如果不存在,请创建它。     
已邀请:
可以使用
open()
varnum()
功能。
varnum()
的输出非零表示变量存在。
data try; 
    input var1 var2 var3;
    datalines;
    7 2 2
    5 5 3
    7 2 7
; 

data try2; 
    set try;
    if _n_ = 1 then do; 
        dsid=open(\'try\'); 
        if varnum(dsid,\'var4\') = 0 then var4 = .; 
        rc=close(dsid);
    end;
    drop rc dsid;    
run;
    
data try2;
    set try;
    var4 = coalesce(var4,.);
run;
(假设var4是数字)     
给自己分配
var4
。如果该赋值不存在,则分配将创建该变量,如果存在,则将其内容保留在原位。
data try; 
    input var1 var2 var3;
    datalines;
    7 2 2
    5 5 3
    7 2 7
; 

data try2; 
    set try; 
    var4 = var4; 
run;
只需记住,以这种方式创建不存在的when5ѭ将使用默认的变量属性,因此,如果需要特定的格式/长度等,则可能需要使用显式的
attrib
语句。     
这是一个很晚的答案/评论,但是这种方法对我有用,非常简单(SAS 9.4)。在下面的示例中,我使用了缺少的数字和字符变量,并为缺少的字符变量分配了一个值。
    data try; 
input var1 var2 var3;
datalines;
7 2 2
5 5 3
7 2 7
; 

    data try2; 
length var4 $20;
length var5 8;
set try; 
var4 = var4; 
if var4 = \' \' then var4 = \'Not on Source File\';
run;
    

要回复问题请先登录注册