我是一個新的SAS用戶,我有一個關於將excel文件導入SAS的問題。如何在SAS中動態導入excel文件?
我在我的共享驅動器中有一個excel文件,它在我的電腦上有不同的映射。 (該路徑在一臺PC上標記爲S驅動器,並且在另一臺PC上標記爲Y驅動器的路徑相同)。每當我更換我的電腦並運行我的SAS程序時,通常無法導入它,因爲我沒有重新映射excel文件。
有沒有辦法從這個文件夾中導入一個excel文件,而不必在每次移動PC時重新映射到excel文件的路徑?感謝您的幫助。
我是一個新的SAS用戶,我有一個關於將excel文件導入SAS的問題。如何在SAS中動態導入excel文件?
我在我的共享驅動器中有一個excel文件,它在我的電腦上有不同的映射。 (該路徑在一臺PC上標記爲S驅動器,並且在另一臺PC上標記爲Y驅動器的路徑相同)。每當我更換我的電腦並運行我的SAS程序時,通常無法導入它,因爲我沒有重新映射excel文件。
有沒有辦法從這個文件夾中導入一個excel文件,而不必在每次移動PC時重新映射到excel文件的路徑?感謝您的幫助。
當然,一種選擇是使用UNC,如註釋中所述。 UNC是一條類似於//share/folder/otherfolder/file.xlsx
的路徑,並且不依賴於驅動器映射。
但是,如果由於某種原因不可行,您肯定可以解決這個問題。你如何這樣做首先取決於你如何運行SAS。
如果您使用Enterprise Guide進行連接,例如,prompt可能是您最好的選擇。提示定義宏變量,宏變量可用於文件名(或驅動器號)。
如果您使用其他方法,各種形式的提示仍然可用,但是您可能會發現創建定義文件名(或libname)的本地文件更容易,甚至可以將驅動器盤符存儲在宏中變量。
如果您完全控制SAS,並且這通常是有用的(不僅適用於這一個程序),您可以在autoexec.sas中加入一些東西。如果您沒有這種控制級別,或者只希望針對此程序特定這一級別,則可以在兩臺PC上以及每臺PC上創建一個位於相同位置(例如,c:\ SASFiles)的文件有不同的文件名/ libname /宏變量(適用於該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_
會告訴你什麼是,並且其中的一個變量應該足夠有用。
我對SAS一無所知,但對於路徑而言,您應該使用UNC。 https://www.lifewire.com/unc-universal-naming-convention-818230 –
同意。在'cmd.exe'中輸入'C:> net use'來查看網絡驅動器字母映射到的服務器地址。 – Hugs