Macro XSET (from Fraktal SAS Programming): Unterschied zwischen den Versionen

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
K
K
Zeile 31: Zeile 31:
 
|
 
|
 
<font face="Courier New">  
 
<font face="Courier New">  
;data _NULL_;
+
;data ecotope / view = ecotope;  
 
</font>  
 
</font>  
|Start datastep run group
+
|
 
|-
 
|-
 
|
 
|
Zeile 76: Zeile 76:
 
</font>  
 
</font>  
 
|End condition on macro parameter ''xvar''
 
|End condition on macro parameter ''xvar''
 +
|-
 +
|
 +
<font face="Courier New">
 +
;run;
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
;proc sql noprint;
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
:select xvar
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
:  into :xvar_l separated by ' '
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
:  from ecotope
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
: ;
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
;quit;
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
:%GLOBAL &XVAR_L.;
 +
|
 +
|-
 +
|-
 +
|
 +
<font face="Courier New">
 +
;data _NULL_;
 +
</font>
 +
|Start datastep run group
 +
|-
 +
|
 +
<font face="Courier New">
 +
: set ecotope;
 +
|
 +
|-
 
|-
 
|-
 
|
 
|
Zeile 91: Zeile 151:
 
|
 
|
 
<font face="Courier New">  
 
<font face="Courier New">  
:filename path clear;
+
;filename path clear;
 
</font>  
 
</font>  
 
|Close source for text data
 
|Close source for text data

Version vom 11. August 2014, 15:18 Uhr

Zurück

Übersicht

Vorwärts

This SAS Macro transfers the environment from the particular operating system to SAS Macro variables.

  • Characters "not appreciated" by SAS are removed from variable values.
  • If a specific variable name is supplied, this will be the only one transferred.
Code executed Function performed

%MACRO xset(xvar);

Start Macro definition with name and positional parameter xvar

filename path pipe "set" lrecl = 2048;

Open source for text data of type pipe pointing to OS command

data ecotope / view = ecotope;

length xvar $256 xval $1024;

Declare variables xvar and xval by length in bytes

infile path dlm = '=';

Utilize data stream from data source path

input xvar $ xval $;

Define structure of data stream path with variables xvar and xval

xvar = upcase(translate(xvar,'_','(-)'));

Remove unwanted characters from variable xvar

%IF %LENGTH(&XVAR.) != 0 %THEN %DO;

Specify condition on macro parameter xvar for using code segment

if trim(xvar) = "%UPCASE(&XVAR.)";

Conditionally executed code

%END;

End condition on macro parameter xvar

run;

proc sql noprint;

select xvar

into :xvar_l separated by ' '

from ecotope

 ;

quit;

%GLOBAL &XVAR_L.;

data _NULL_;

Start datastep run group

set ecotope;

call symput(compress(xvar),compress(xval));

Transfer variable values to symbol table

run;

End data step run group

filename path clear;

Close source for text data

%MEND xset;

End Macro definition with name

Zurück

Übersicht

Vorwärts