将Excel工作表导入SAS

时间:2019-05-26 19:59:29

标签: sas

我正在尝试使用以下代码将从Kaggle下载的(.csv)excel文件导入SAS:

PROC IMPORT OUT= Sasuser.HeartDisease DATAFILE= "C:\Users\PCPCPC\Documents\StatDatas\heart" 
            DBMS=excel REPLACE;
     SHEET="auto"; 
     GETNAMES=YES;
RUN;

但是,它给了我这个错误:

931  PROC IMPORT OUT= Sasuser.HeartDisease DATAFILE= "C:\Users\PCPCPC\Documents\StatDatas\heart.xlsx"
932              DBMS=excel REPLACE;
933       SHEET="auto";
934       GETNAMES=YES;
935  RUN;

ERROR: Unable to open file C:\Users\PCPCPC\Documents\StatDatas\heart.xlsx. It does not  exist or it
       is already opened exclusively by another user, or you need permission to view its data.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IMPORT used (Total process time):
      real time           0.35 seconds
      cpu time            0.29 seconds

我在文件系统中的文件如下所示: enter image description here

这是文件的属性: enter image description here

1 个答案:

答案 0 :(得分:1)

首先,即使您的操作系统选择使用EXCEL作为默认程序打开文件名带有该扩展名的文件,CSV文件也不是EXCEL文件。 CSV文件只是一个文本文件。您可以使用任何文本编辑器(包括SAS程序编辑器)查看它。因此,CSV文件的扩展名应为.csv

为避免这种混乱,您可以告诉操作系统向您显示完整的文件名。这里是有关如何在Windows 10中执行此操作的说明的链接。https://www.thewindowsclub.com/show-file-extensions-in-windows

您可以对CSV文件使用PROC IMPORT。

proc import 
  replace out= Sasuser.HeartDisease 
  datafile= "C:\Users\PCPCPC\Documents\StatDatas\heart.csv" 
  dbms=csv
;
run;

但是,由于它们只是纯文本文件,因此您也可以编写自己的数据步骤以读取文件。然后,您将完全控制变量名称以及如何定义变量。