2017-08-15 2 views
0

Ich möchte Dataset-Namen in SAS mit verketteten Makrovariablen ändern. Mit dem folgenden Beispielcode erhalte ich einen Fehler. Ist meine Syntax falsch oder ist es nicht möglich, eine Verkettungsfunktion auf diese Weise zu verwenden?SAS Proc Datasets - Dataset-Namen mit Makro-Variable ändern

Code:

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = cat(&emp,&term); 
run; 

Fehler empfangen:

ERROR 22-322: Syntaxfehler, erwartet Sie eine der folgenden: ALTER, memType, MT, MTYPE, PROTECT, PW, LESEN SCHREIBEN.

Fehler 76-322: Syntaxfehler, Anweisung wird ignoriert.

Antwort

1

Sie müssen keine Makrovariablen verketten, es ist wie ein Text zum Suchen und Ersetzen. Weil Sie zitiert haben jetzt ist es das, was passieren würde:

change testset = cat('bob', 201610) 

Aber die CAT-Funktion ist es nicht gültig. Technisch könnte man% SYSFUNC() verwenden, um die CAT-Funktion zu verwenden, aber es gibt einen einfacheren Weg.

%let term=201610; 
%let emp='bob'; 

Proc Datasets library=work; 
change testset = &emp&term.; 
run;quit; 

Beachten Sie, dass PROC DATASETS ein QUIT zum Beenden benötigt.

+1

Die Zitate rund um 'Bob' müssen auch entfernen – Longfish

+0

Danke, reparierte es. – Reeza