очень близко, две модификации:
- ВЫЗОВ SYMPUTX вместо ВЫЗОВ SYMPUT
WORDDATE20. формат вместо кошки/поместить комбинации
call symputx('TitleDate',put("&CDate."d,worddate20.));
EDIT (для ответа на вопрос в комментариях): Функция компресс принимает 3 аргумента, первый является обязательным, а два последних являются вариантом.
функция компресс не работает, потому, что SAS видит это:
компресс (25 марта, 2015) Это недопустимый вызов функции компресса. Я думаю, что функция сжатия предполагает, что второй аргумент будет равен 2015 году, и я не знаю, что он делает с 25. Я бы на самом деле ожидал, что он создаст ошибку, но это не так.
Если вы хотите использовать функцию сжатия для передачи символьного значения, вам нужно будет процитировать ее с помощью функции% quote, но это избавит от всех пробелов, и я думаю, вы просто хотели избавиться от ведущие пространства.
%put Title is %sysfunc(compress(%quote(&TitleDate.)));
Спасибо, это сработало. Не могли бы вы объяснить, почему 'compress' возвращает усеченный результат? – Lovnlust
Привет. Если вы примените только функцию сжатия к значению макрокоманды «Март 2015», то из-за «,» SAS попытается сжать строку «Март» к 2015 году, что приведет к марту. –