我正在尝试将以下假设的 libname 引用更改为其他内容,以使其指向不同的共享驱动器。
libname mylibref '/u/mystuff/sastuff/work';
这引用了共享驱动k:\。
我想把它改成指向共享驱动m:\。
我应该如何改变/u/mystuff/sastuff/work才能做到这一点?我在一台 Windows 机器上,我不知道为什么这个 SAS 库名是 Unix 格式。我接手了一些用 SAS 编写的项目,但对这种特定的参考格式并不熟悉......
我正在尝试将以下假设的 libname 引用更改为其他内容,以使其指向不同的共享驱动器。
libname mylibref '/u/mystuff/sastuff/work';
这引用了共享驱动k:\。
我想把它改成指向共享驱动m:\。
我应该如何改变/u/mystuff/sastuff/work才能做到这一点?我在一台 Windows 机器上,我不知道为什么这个 SAS 库名是 Unix 格式。我接手了一些用 SAS 编写的项目,但对这种特定的参考格式并不熟悉......
如果它是 Unix 库名,那么代码很可能被设计为远程提交到 Unix SAS 服务器。
例如
/* 本地代码 - 在 PC 上处理 */
libname 本地 'c:\temp' ;
数据 local.test ;
做 i = 1 到 100 ;
输出 ;
结尾 ;
跑 ;
提交;
/* 远程代码 - 在服务器上处理 */
libname unix '/u/user/stuff' ;
数据 unix.test ;
做 i = 1 到 100 ;
输出 ;
结尾 ;
跑 ;
结束提交;
值得记住的是,可以在 windows 上使用正斜杠,因此应该执行以下操作而不会出错:
libname mylibref 'M:/u/mystuff/sastuff/work';
反向(反斜杠\on\unix)不起作用!
不确定这是否真的适用于您的情况,除非您有一个从 M 驱动器到 unix 的挂载点。
SAS 的语法可能过于有用,并试图让用户的生活更轻松,但有时它可能会令人困惑。这是一个很好的例子。
当前 libname 语句中的正斜杠被解释为 SAS 会话的当前默认 Windows 驱动器上的路径,在您的情况下显然是驱动器 K并且等效于:
libname mylibref 'K:\u\mystuff\sastuff\work';
因此,要将 libref 更改为您的M 驱动器,只需提交一个新的 libname 语句:
libname mylibref 'M:\u\mystuff\sastuff\work';