从GUI中删除标准SAS库

时间:2017-03-30 18:55:41

标签: sas

我想从SAS 9.3 GUI中删除/删除/取消分配标准SAS库。

我尝试了两种解决方案来删除一个没有工作的库:

  1. %sysfunc(libname(maps))导致:
  2. ERROR 180-322: Statement is not valid or it is used out of proper order.

    1. 在文件sasv9.cfg
    2. 中注释掉有问题的启动代码

      我无权修改该目录中的(C:\ Program Files ...)文件

      谢谢!

      图书馆是:   - 地图

      • Mapsgfk

      • Mapssas

      • Sashelp

      • SASUSER

3 个答案:

答案 0 :(得分:1)

您可以删除与地图相关的libnames,但代价是没有可用的地图文件,并且可能会丢失某些功能。

如果您将基本配置文件复制到其他位置,请将其复制到操作系统的Files Used By SAS中提到的预定义位置之一(我链接到Windows版本,但Unix有{{3} });或者到快捷方式中-CONFIG选项上指定的位置,例如:

"C:\Program Files\SAS94\SASFoundation\9.4\sas.exe" -CONFIG "C:\temp\sasv9_nolibs.cfg"

您可以在没有对通常存储配置文件的Program Files目录的写访问权的情况下执行此操作。如果这样做,则可以通过删除-MAPS和相关行来自定义它。然后不会创建那些库;在这种情况下,只创建SASHELP,SASUSER和WORK,如下所示:

similar page

删除SASUSER似乎不可能,因为当您可以删除配置文件中的-SASUSER选项时,它仍会创建SASUSER文件夹。

不幸的是,删除-SASHELP选项会导致SAS在初始化时崩溃; SASHELP包含许多用于SAS功能的核心文件,如果没有它,SAS就无法工作。请参阅以下屏幕截图。

Image of SAS with only three libraries

因此,您可以使用3个库,但不能再进一步了。

答案 1 :(得分:0)

不确定是否可以在不更改系统范围的config.sas文件的情况下删除它们。但是您可以将MAPS选项指向空设备,以便它们找不到任何数据集。这是PROC OPTIONS的输出。

 MAPS=!SASROOT/maps
                   Specifies the location of SAS/GRAPH map data sets.
 MAPSGFK=!SASROOT/mapsgfk
                   Specifies the location of GfK maps.
 MAPSSAS=!SASROOT/maps
                   Specifies the location of SAS map data sets.

您可以使用命令行选项指向这两个不同的位置。

sas -maps /dev/nul  -mapsgfk /dev/nul -mapssas /dev/nul

仍将创建libref,但不会找到任何成员。

您可能会为SASUSER执行类似的操作,但您可能还需要添加-rsasuser选项,以便SAS知道创建一个WORK.PROFILE来代替正常的SASUSER.PROFILE目录。< / p>

我认为您不想删除SASHELP libref,因为我认为如果没有能够找到通过该libref提供的内容,SAS中有很多东西是行不通的。

答案 2 :(得分:0)

你得到了180-322,因为libname函数返回一个值,你用开放代码调用它,它生成的代码无效。

scala.math.min(
   inputDF.select(min($"pickup_longitude")).head.getFloat(0),
   inputDF.select(min($"dropoff_longitude")).head.getFloat(0)
)

如上所述,您将看到该值。但是看起来你无法清除LIBREF MAPS。