SAS Proc导入“表”:“表”参数是必需的参数吗?

时间:2018-11-10 23:08:38

标签: import sas

我必须在PROC IMPORT上放一个幻灯片,用于学校项目。 SAS文档(http://support.sas.com/documentation/cdl/en/proc/65145/HTML/default/viewer.htm#n18jyszn33umngn14czw2qfw7thc.htm)表示需要三个自变量:

  1. Datafile =
  2. Out =
  3. 表=

接着说DBMS是可选的。

对于我的幻灯片,我试图使用一个涉及TABLE =参数的示例。但是,我不断收到关于无法一起使用FILE =和TABLE =语句的错误。实际上,在回到其他代码以导入数据进行作业时,我注意到没有一个代码使用TABLE =参数。相反,总会有一个DBMS =语句。例如:

proc import
datafile = "C:\Users\ccedie1\Downloads\survey1.csv"
out = Survey
DBMS=csv;
run;
proc print data=Survey;
run;

据我了解,SAS有许多版本,并且称为SAS / ACCESS接口的产品需要单独的许可证。我怀疑学校的计算机具有此附加许可证/功能,因为它不需要TABLE =语句。实际上,即使没有DBMS语句,我也可以使此代码正常工作。

请让我知道我在这里缺少什么概念。我显然希望我的牌组准确无误。如果我无法创建使用TABLE =语句的示例,则需要能够解释为什么我不能这样做。例如,我想说些类似的话:“虽然SAS文档将TABLE =列为必填参数,但在校园内使用SAS 9.4时不需要__ = ________。”

我意识到我可能在解释问题/问题上做得最好,为此我深表歉意。

在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

文档错误。它应该说出“需要表或数据文件”的含义。

SAS 9.4中的导入向导会生成以下代码:

PROC IMPORT OUT= WORK.test 
            DATAFILE= "C:\Users\User\Desktop\Testing.csv" 
            DBMS=CSV REPLACE;
     GETNAMES=YES;
     DATAROW=2; 
RUN;

没有表语句。

祝你上课好运。

答案 1 :(得分:0)

您链接的页面此行中的竖线

DATAFILE="filename" | TABLE="tablename"

通常表示or。基本上,他们使用的是Backus-Naur form

因此,这意味着列出的选项是必需的,但是您可以选择要使用的选项。

因此,当读取存储在物理文件中的格式时,必须使用指定datafile=,但是当从远程数据库读取时,必须指定table=选项。

请注意,您链接到SAS版本9.3的旧文档,而不是当前文档。