SAS导入 – 文件不存在
我试图将一张excel表导入SAS,但由于某些原因,SAS无法find该工作簿。 这是我得到的代码和错误:
PROC IMPORT Out=Transactionsmaster DATAFILE="C:\Users\me\Documents\Transactions" DBMS=XLSX Replace; GETNAMES=YES; RUN;
错误:XLSX文件不存在 – > /config/Lev1/SASApp/C:\Users\me\Documents//Transactions.xlsx
我是否必须首先将Excel表导入到SASApp中? 有没有办法做到这一点,而不使用导入向导?
提前致谢!
我们来看看这个错误信息:
ERROR: XLSX file does not exist -> /config/Lev1/SASApp/C:\Users\me\Documents//Transactions.xlsx
看看文件path。
/config/Lev1/SASApp/
显然是Linux / Unix服务器上的一个path。 这是运行Workspace服务器时的默认位置。 从这里,我会猜测你通过企业指南(EG)连接到SAS。
C:\Users\me\Documents//Transactions.xlsx
这是你input的path。
所以发生了什么事? SAS运行在远程服务器上 – 运行Linux / UNIX的服务器。 您要求SAS打开“C:\ Users \ me \ Documents // Transactions.xlsx”。
但是,“C:\ stuff \ more \ file”在Linux / UNIX上不是有效的文件系统path。 所以SAS认为这是文件名,并在默认位置“/ config / Lev1 / SASApp”
要解决这个问题,你需要把你的XLSXfile upload到服务器。 然后在代码中使用服务器上文件的path。 如果您不确定如何操作,请与系统pipe理员联系。
或者,您可以使用EG中的“数据导入向导”。 我不是一个迷,因为它有时会搞砸,但它确实有效。
如果使用Enterprise Guide或DI(即将代码提交给远程SAS服务器)运行此代码,则需要将该文件传输到服务器端。 您可以使用PROC UPLOAD传输文件。
如果尚未导入,请先closures该文件。 您可能也会在您的示例中引用文件夹而不是文件(除非Transactions.xlsx是您要导入的文件)