[英]How to dynamically import excel files in SAS?
我是SAS新用户,对将excel文件导入SAS有疑问。
我的共享驱动器中有一个excel文件,该文件在PC上的映射方式不同。 (路径在一台PC上标记为S驱动器,同一路径在另一台PC上标记为Y驱动器)。 每当我更换PC并运行SAS程序时,通常都无法导入它,因为我没有重新映射excel文件。
有没有一种方法可以从该文件夹导入excel文件,而不必每次移动PC时都重新映射到excel文件的路径? 感谢您的帮助。
当然,一种选择是使用如注释中所述的UNC。 UNC是类似于//share/folder/otherfolder/file.xlsx
的路径,并且不依赖于驱动器映射。
但是,如果由于某种原因这不可行,您当然可以解决此问题。 这样做的方式首先取决于您如何运行SAS。
例如,如果您使用企业指南进行连接,则提示可能是最好的选择。 提示定义宏变量,并且宏变量可用于文件名(或驱动器号)。
如果使用其他方法,各种形式的提示可能仍然可用,但是您可能会发现创建定义文件名(或libname)的本地文件甚至将驱动器号存储在宏变量中更容易。
如果您完全控制SAS,并且这通常是有用的(不仅限于此程序),则可以将某些内容放入autoexec.sas中 。 如果您没有该级别的控制,或者您只想将此特定于此程序,则可以在两台PC以及每台PC上创建一个位于同一位置的文件(例如c:\\ SASFiles)。具有不同的文件名/库名/宏变量(适用于该PC的变量)。 然后,在程序开始时%include
该文件。
最后,您可以使用PC名称或其他环境变量来确定您所使用的计算机,然后将其用于驱动逻辑。 例如:
%macro define_path;
%global path_letter;
%if &syshostname = 55PC1010G %then %do;
%let path_letter=P;
%end;
%else %let path_letter=Y;
%mend define_path;
%define_path;
%put &=path_letter;
您将需要在每台计算机上%put &=syshostname
来查看它们的值,但是应该很容易找出来。 如果由于某种原因未定义&syshostname
,则%put _automatic_
会告诉您什么,其中一个变量应该足够有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.