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

Aus phenixxenia.org
Zur Navigation springen Zur Suche springen
Wolf-Dieter Batz (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Wolf-Dieter Batz (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
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