1

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

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

这引用了共享驱动k:\

我想把它改成指向共享驱动m:\

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

4

3 回答 3

1

如果它是 Unix 库名,那么代码很可能被设计为远程提交到 Unix SAS 服务器。

例如

/* 本地代码 - 在 PC 上处理 */
libname 本地 'c:\temp' ;
数据 local.test ;
  做 i = 1 到 100 ;
    输出 ;
  结尾 ;
跑 ;

提交;
  /* 远程代码 - 在服务器上处理 */
  libname unix '/u/user/stuff' ;
  数据 unix.test ;
    做 i = 1 到 100 ;
      输出 ;
    结尾 ;
  跑 ;
结束提交;
于 2013-03-08T12:04:50.073 回答
0

值得记住的是,可以在 windows 上使用正斜杠,因此应该执行以下操作而不会出错:

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

反向(反斜杠\on\unix)不起作用!

不确定这是否真的适用于您的情况,除非您有一个从 M 驱动器到 unix 的挂载点。

于 2013-03-10T23:21:41.183 回答
0

SAS 的语法可能过于有用,并试图让用户的生活更轻松,但有时它可能会令人困惑。这是一个很好的例子。

当前 libname 语句中的正斜杠被解释为 SAS 会话的当前默认 Windows 驱动器上的路径,在您的情况下显然是驱动器 K并且等效于:

libname mylibref 'K:\u\mystuff\sastuff\work';

因此,要将 libref 更改为您的M 驱动器,只需提交一个新的 libname 语句:

libname mylibref 'M:\u\mystuff\sastuff\work';
于 2013-03-08T15:25:23.093 回答