企业指南-如何在SAS中将libname分配给WORK Data Library



我们有一个企业指南项目,其中有多个流程。每个流程的输出都保存到名为"SAVE"的特定库中,该库由LIBNAME语句定义。这样做是为了让我们可以更容易地跳转和处理任何流程,而不需要运行以上所有流程(当然,使用LIBNAME语句初始化SAVE库的流程除外)。

然而,当我们想在PRODUCTION服务器上运行此代码时,我们希望此SAVE库指向SAS WORK Data Library,因为我们不需要此介于数据之间的数据。

是否可以使用LIBNAME语句(例如"LIBNAME SAVE SAS.WORK;")将库定向到WORK Data Library?

定义libref使用LIBNAME语句。要查找现有库使用的路径,请使用PATHNAME()函数。

libname save %sysfunc(quote(%sysfunc(pathname(work)))) ;

请小心使用此技巧,因为SAVE.memname和WORK.memname现在将引用同一个物理文件。由于名称冲突,在开发环境中工作的代码可能无法工作。

好的,我找到了一种方法。

%let workLocation=%sysfunc(getoption(work));
libname SAVE "&workLocation.";

还有更简单的解决方案:

libname SAVE (work);

您可以做的一件事是重新分配WORK库,使其指向SAVE库所在的位置。

在第1点中,他们解释了如何做到这一点:https://riskopedia.wordpress.com/2007/03/06/reassign-location-on-sas-work-folder/

最新更新