Macros 使用宏变量的line语句

Macros 使用宏变量的line语句,macros,sas,line,let,Macros,Sas,Line,Let,我想知道。(点)在下面的sas行语句中是什么意思:(line&ls.*“”;) 我知道ls是一个宏变量,但点是什么意思 option pageno=1 nodate center; %let ls=68; %let ps=20; proc report data=class2 LS=&ls PS=&ps SPLIT="/" center headline headskip nowd spacing=5 out=outdata1; column sex age nam

我想知道。(点)在下面的sas行语句中是什么意思:(line&ls.*“”;) 我知道ls是一个宏变量,但点是什么意思

option pageno=1 nodate center;
  %let ls=68;
  %let ps=20;

proc report data=class2 LS=&ls PS=&ps SPLIT="/" center headline headskip  nowd spacing=5 out=outdata1;

column sex age name height weight notdone;
define sex / order order=internal descending width=6 LEFT noprint;
define age / order order=internal width=3 spacing=0 "age" right;
define name / display width=8 left "name" flow;
define height / sum width=11 right "height";
define weight / sum width=11 right "weight";
define notdone / sum format= notdone. width=15 left "status";

computer before;
 nd=notdone.sum;
endcomp;
compute before _page_/left;
  line "gender group: " sex $gender.;
  line &ls.*"_";
  line ' ';
endcomp;

句点分隔宏变量名称的结尾。通常,这是不必要的,因为只要看到SAS名称中无效的字符(例如空格、分号),SAS就会识别宏变量名称的结尾。最重要的是,这个时期允许您告诉SAS结束宏变量名,如果它在字符串的中间。< /P>
%let mv=var;
%put &mv.3;
var3
返回到日志,而如果没有定义名为
mv3
的宏变量,则
&mv3
将无法解析

此外,请注意,已解析代码中不包含定界周期。e、 g:

%let lib=sashelp;

data cars;
  set &lib..cars;
run;
解析宏变量后的set语句为

  set sashelp.cars;

句点分隔宏变量名称的结尾。通常,这是不必要的,因为只要看到SAS名称中无效的字符(例如空格、分号),SAS就会识别宏变量名称的结尾。最重要的是,这个时期允许您告诉SAS结束宏变量名,如果它在字符串的中间。< /P>
%let mv=var;
%put &mv.3;
var3
返回到日志,而如果没有定义名为
mv3
的宏变量,则
&mv3
将无法解析

此外,请注意,已解析代码中不包含定界周期。e、 g:

%let lib=sashelp;

data cars;
  set &lib..cars;
run;
解析宏变量后的set语句为

  set sashelp.cars;

圆点告诉SAS这是宏变量的结尾。圆点告诉SAS这是宏变量的结尾。我还发现编写
很有用,因为它可以诱使编辑器认为您引用的是一种格式,然后将变量高亮显示为灰色,以便更容易发现:)@StuSztukowski我发现了相反的情况。我想这是品味的问题,但我发现所有额外的月经对我来说都是杂乱无章的。有点像添加了很多不需要的括号。我还发现编写
也很有用,因为它可以诱使编辑器认为您引用的是一种格式,然后突出显示变量灰色,以便更容易发现:)@StuSztukowski我发现了相反的情况。我想这是品味的问题,但我发现所有额外的月经对我来说都是杂乱无章的。有点像添加了很多不需要的括号。