2016-02-09 24 views
0

在SAS中,从原始数据文件(csv)创建SAS数据集时,我们可以使用DATA步骤,使用infile关键字或PROC IMPORT步骤。 每一个的优点和缺点是什么?使用DATA步骤与PROC IMPORT

+0

优点/缺点列表并不真正在这个网站的主题(“列表问题”)。尽管如此,我认为一个更好定制的问题将会成为话题。 – Joe

+0

特别是,如果您正在寻找某个特定的关于某个或另一个的具体内容,那么可以在主题上询问这个问题。现在它太宽泛,太多讨论。一个好的问题应该来自具体的用例,或者至少是一个或多或少具体的用例;因此,一个关于潜在用例的详细问题是适当的。 – Joe

+0

另请参阅[此元问题](http://meta.stackoverflow.com/questions/258308/asking-questions-about-advantages-disadvantages-on-so)以获取更多详细信息。 – Joe

回答

1

Proc Import根据读取由选项控制的CSV中的行数来假定字符变量的长度和变量的类型。如果您在运行proc导入后在交互式sas中发出撤回命令,您将获得proc导入生成的数据步骤代码以执行实际工作。它会生成格式和信息声明,可能会或可能不会完全符合您的要求。

我经常使用proc import作为数据步骤代码生成器,调用代码,然后修改它以适合我想要的。

您还可以添加其他处理逻辑来扩展步骤的功能,而不仅仅是将源数据读入数据集。创建新变量作为CSV弹簧中一个或多个列的转换。

0

我普遍认为这是一个太宽泛的问题。这就是说:

PROC IMPORT比DATA STEP慢。这是因为PROC IMPORT查看文件,然后写入并执行DATA STEP。

数据步骤要求您知道每个变量的名称,位置和属性(类型,长度等)。

如果我需要读取一次文件,我只使用PROC IMPORT。

如果我需要多次读取文件,我不关心速度,文件格式可能会改变,那么我使用PROC IMPORT。

如果我在速度很重要的生产系统中,并且如果格式更改,我想要一个ERROR,那么我使用PROC IMPORT。但是我将它写入的DATA STEP放到我的代码中。

如果PROC IMPORT无法正确猜测我的列,我使用PROC IMPORT,修改它生成的DATA STEP,然后使用它。