sas libname采用unix格式

时间:2013-03-08 01:23:38

标签: sas

我正在尝试将以下假设的libname引用更改为其他内容,以使其指向不同的共享驱动器。

libname mylibref '/u/mystuff/sastuff/work';

这引用了共享驱动器k:\

我想将其更改为指向共享驱动器m:\

我应该如何更改/u/mystuff/sastuff/work来做到这一点?我在Windows机器上,我不知道为什么这个SAS libname是Unix格式的。我接手了一些用SAS编写的项目,并不熟悉这种特殊的参考格式...

3 个答案:

答案 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驱动器到安装的挂载点..