我是 SAS 和 Enterprise Guide 的新手,在理解一些基本概念时遇到了问题。请有人能解释一下库、项目、libname 和 libref 之间的关系吗?我正在学习 SAS 电子学习课程,但是当我尝试将库与存储在我机器上的数据文件链接时,我不断收到该库不存在的消息,即使它就在服务器列表中。
提前致谢
我是 SAS 和 Enterprise Guide 的新手,在理解一些基本概念时遇到了问题。请有人能解释一下库、项目、libname 和 libref 之间的关系吗?我正在学习 SAS 电子学习课程,但是当我尝试将库与存储在我机器上的数据文件链接时,我不断收到该库不存在的消息,即使它就在服务器列表中。
提前致谢
我正在学习大学水平的 SAS 课程。据我所知,libref 是将一组文件的物理位置与 SAS 相关联的名称。libname 语句为 SAS 程序创建库引用 (libref)。一般来说,libname 的基本语法是:
libname libref 'path';
例如:
libname sales 'C:\salesdata\journal\june';
换言之,SAS 要能够从数据集中读取和写入数据,它必须知道包含特定数据集的目录或文件夹。SAS 将我们人类所说的目录或文件夹称为“库”。SAS 还为这些库分配昵称 (libref),并使用 libname 语句将昵称分配给特定文件夹。
例如,如果要打印位于“june”文件夹中的现有 SAS 数据集,可以执行以下操作:
libname sales 'C:\salesdata\journal\june';
proc print data = sales.revenue;
run;
SAS 将打印位于“june”文件夹内的“收入”数据集的数据部分,因为我们已将销售额分配给该文件夹。希望这可以帮助。
特别是如果您使用 SAS OnDemand 进行培训(正如我假设的那样),您不太可能直接将 libname 分配给本地数据文件。您必须提供有关位置/等的更多信息。您尝试访问以获得更好答案的数据文件,但一般来说,如果您在服务器上运行 SAS(企业指南是您用来连接的 GUI,SAS 本身就是实际执行频率的过程/etc. 并且可能在某处的服务器上,在云中或在您公司的服务器场中)。
关键概念是在运行 SAS 服务器实例的机器上必须可以访问 libname。虽然您可能已经设置了网络,以便服务器将本地计算机的硬盘映射到驱动器,但在大多数情况下并非如此。如果您在网络上并且可以访问 SAS 服务器也可以访问的网络驱动器,那么您可以通过这种方式共享信息;但如果您在云中运行 SAS(例如用于 SAS OnDemand 的培训/教育目的),您可能无法访问任何共享驱动器。
Chris Hemedinger(曾在 EG 上工作的 SAS 人员之一)编写了一个自定义任务,可在此链接中获得,以帮助将文件从本地桌面复制到远程服务器。这可能对 SAS OnDemand 没有帮助,因为我认为那些不允许复制文件。