我正在尝试将以下假设的libname引用更改为其他内容,以使其指向不同的共享驱动器。
libname mylibref '/u/mystuff/sastuff/work';
这引用了共享驱动器k:\
。
我想将其更改为指向共享驱动器m:\
。
我应该如何更改/u/mystuff/sastuff/work
来做到这一点?我在Windows机器上,我不知道为什么这个SAS libname是Unix格式的。我接手了一些用SAS编写的项目,并不熟悉这种特殊的参考格式...
答案 0 :(得分:1)
如果它是Unix libname,则可能是代码被设计为远程提交给Unix SAS服务器。
e.g。
/* Local code - processed on PC */ libname local 'c:\temp' ; data local.test ; do i = 1 to 100 ; output ; end ; run ; rsubmit ; /* Remote code - processed on server */ libname unix '/u/user/stuff' ; data unix.test ; do i = 1 to 100 ; output ; end ; run ; endrsubmit ;
答案 1 :(得分:0)
SAS可能对它的语法过于乐于助人,并尝试让用户的生活更轻松,但有时它可能会令人困惑。这是一个很好的例子。
当前libname语句中的正斜杠被解释为SAS会话的当前默认Windows驱动器上的路径,显然在您的情况下驱动器K 和相当于:
libname mylibref 'K:\u\mystuff\sastuff\work';
因此,要将libref更改为 M驱动器,只需提交一个新的libname语句:
libname mylibref 'M:\u\mystuff\sastuff\work';
答案 2 :(得分:0)
值得记住的是,可以在窗口上使用正斜杠,因此以下内容应该执行而不会出错:
libname mylibref 'M:/u/mystuff/sastuff/work';
反向(反斜杠\ on \ unix)不起作用!
不确定这是否真的适用于您的情况,除非您有从M驱动器到安装的挂载点..