我正在尝试生成一个变量文件名.
ods pdf file ="D:\ FileDirectory\&& mFileNameVariable&I .pdf"notoc;
这会生成一个变量文件名,但会在扩展名之前添加一个空格(例如FileName .pdf;我需要FileName.pdf).
我读到你可以这样做:
ods pdf file ="D:\ FileDirectory\&& mFileNameVariable&I..pdf"notoc;
添加扩展点; 但是,当我尝试该宏不起作用时,我得到一个WYSIWYG值(例如.&& mFileNameVariable&I.pdf).
我假设它是因为我的字符串以"&I"结尾.
我想到的另一个解决方案,但是它不必要/解决方法是修剪(FilePathAndName)和/或(或者FilePathAndName FileExtension)将值单独地连接起来.
我们非常感谢您的任何见解或反馈,并提前感谢您的时间和帮助.
干杯!
我们可以使用语法通过SAS SQL Procedure创建宏变量
select var into :mvar
Run Code Online (Sandbox Code Playgroud)
但我想知道在数据步骤中是否存在相同的方式.
我有一个数据集.
A B
=== ===
a1 b1
a2 b2
a3 b3
Run Code Online (Sandbox Code Playgroud)
我可以MA
使用下面的语句创建一个宏变量.
proc sql noprint;
select "'"||A||"'" into :MA separated by ","
from dataset;
quit;
Run Code Online (Sandbox Code Playgroud)
如何在数据步骤中执行此操作?
下面是基于增量变量"i"的值执行一组数据步骤的代码.因为我已将i的值分配给1(数字而非字符值).理想情况下,第一个数据步骤块需要执行,但在下面的情况下,第二个数据步骤块正在执行.
%put&i.; 将1打印到日志窗口.
%macro DSN;
%let i = 1 ;
data new_DSN;
run;
%if i = 1 %then %do;
data Dummy ;
run;
data DUMMY_ ;
set DUMMY new_DSN ;
run;
%end;
%else %if i ^= 1 %then %do ;
data DUMMY_ ;
set DUMMY_ new_DSN ;
run;
%end;
%mend DSN;
%DSN;
Run Code Online (Sandbox Code Playgroud) 我有一个sas宏,它依赖于两个不同的变量,分别用Age
和Year
表示.&Age
&Year
我想为15-18岁和2007-2010年的每个组合运行宏,并希望为这些组合中的每一个创建一个输出表(即总共16个表).
这是我的问题,我尝试在Matrix_pop_adm&Age_RP&Year
SAS不喜欢的宏中给输出表以下名称.
如何正确命名输出文件?
%let x = 15;
%macro test;
%let x = 10;
%put x inside macro test = &x;
%mend test;
%test;
%put x outside the macro test =&x;
%put x inside the macro test =&x;
Run Code Online (Sandbox Code Playgroud)
我需要知道宏定义之外的测试值是多少?
我有一个关于SAS宏的基本问题.在sas宏内部,当你编写一个let语句或put语句或if语句时,你总是用%前缀.
但是当你在宏中写一个'proc'时,为什么我们不需要写%proc?或者例如%data?