Переменная SAS Macro и расширения файлов - PullRequest
4 голосов
/ 02 апреля 2012

У меня есть следующий код в конце моего кода для экспорта данных SAS в файл Excel.RepDate настраивается следующим образом в начале кода:

%let RepDate = &SYSDATE9; 

Дата работает идеально, однако, когда я использую следующий код для экспорта данных:

PROC EXPORT DATA=MYData         
OUTFILE="C:\Documents and settings\Documents\myFile &RepDate.XLS"     DBMS=EXCEL2000 REPLACE;
RUN;

дата вписывается в имя файла, но XLS добавляется к имени файла.Точка для расширения файла отсутствует и имя файла становится следующим:

myFile02APR2012XLS

Это не то, что я ожидал, я ожидал, что имя файла будет следующим: myFile02Apr2012 с расширением .XLS в качестве расширения файла.Есть ли способ это исправить?

1 Ответ

13 голосов
/ 02 апреля 2012

Вам нужно

OUTFILE="C:\Documents and settings\Documents\myFile &RepDate..XLS"

Вам необходимо использовать доп.после ссылки макропеременной &RepDate.Первый .завершает ссылку на макропеременную, а вторая.затем является частью строки.

Чтобы понять, почему.необходимо, возможно, вы захотите создать имя файла

02Apr2012MyFile.XLS

. В этом случае вы можете попытаться написать:

&RepDateMyFile.XLS

, но интерпретатор sas не будет знать, где находится макросимена переменных заканчиваются, а текст строки продолжается, поэтому для завершения ссылки на макропеременную требуется точка:

&RepDate.MyFile.XLS

В вашем случае вы хотите поставить a.сразу после разрешенной макропеременной, следовательно, необходимо две точки.

...