作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个每年都不同的库名,我想制作一个程序来自动调整它。但是为了让一切正常工作,我必须在 libname 语句中引用的字符串中调用一个宏。我该怎么做?
%macro srvyr;
data work.whatever;
length srvyr $4.;
srvyr = (left(year(date()))-1);
srvyr2 = "'C:\Documents and Settings\user\Desktop\sas\d"||srvyr||"a1'";
run;
%mend;
%srvyr;
/*Everything above sets configures the pathname the way I need it*/
然后我想运行这个:
libname stuff &srvyr;run;
好像是
libname stuff 'C:\Documents and Settings\user\Desktop\sas\d2010a1';
run;
我该如何正确执行此操作?
最佳答案
Does 总是必须是前一年,或者您想将它基于数据集中的值。你不需要宏来解决这个问题。
获取去年的最短方法如下
libname stuff "C:\Documents and Settings\user\Desktop\sas\d%eval(%sysfunc(year(%sysfunc(date())))-1)a1";
如果你想把它分解来让它更具可读性,它可能是这样的
%let lastyear = %eval(%sysfunc(year(%sysfunc(date())))-1);
%let libpath = C:\Documents and Settings\user\Desktop\sas\d&lastyear.a1;
libname stuff "&libpath";
关于sas - 如何在 SAS 中的 libname 语句的引用字符串中调用宏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240295/
我是一名优秀的程序员,十分优秀!