SAS按选项排序

时间:2017-06-16 02:17:37

标签: sas

我正在阅读一些涉及sortedby选项的代码,这让我感到困惑。

因此,在代码的第一部分中,使用以下代码来读取数据:

 data _quotes / view=_quotes;
    set taq.&yyyymmdd:;
    by symbol date time NOTSORTED ex; length EXN 3.;
 run;

请注意,此处有NOTSORTED选项。当我删除它时,SAS会返回错误ERROR: BY variables are not properly sorted on data set

根据我对SAS NOTSORTED如何工作的理解,taq数据集未正确排序,但在适当的组中。

但是,在下面的代码中,几乎紧接在前面的代码之后(之间没有涉及排序代码),没有更多的NOTSORTED选项,但没有错误:

data &outset (sortedby= SYMBOL DATE TIME index=(SYMBOL)
              label="WRDS-TAQ NBBO Data");
set _quotes;
by symbol date time;
run;

因此,我想知道是否因为sortby语句产生了影响?我读了SAS documentation,似乎sortby不会对数据集进行排序,只是指定数据当前的排序方式。

但是为什么没有NOTSORTED选项的by语句在第二个代码中起作用而不是第一个代码?

1 个答案:

答案 0 :(得分:2)

请注意,变量ex不在第二步的BY语句中。如果源数据按symbol date time排序但未按ex排序,则您所观察到的内容是有意义的。

notsorted选项放在变量列表的中间是不常见的。无论放置在何处,它都适用于整个列表。在这种情况下,作者可能打算向读者建议哪些变量未被排序。我发现这种风格令人困惑。

要检查,请在第二步中将ex添加到BY语句,看看它是否会引发错误。