標籤:

ORDER=DATA in PROC REPORT

昨天幫忙看一個lisitng的時候,才注意到原來order=data和我之前理解的是不一樣的。看下面的例子:

之前我的理解這樣做可以保持ONSETDAT_C這個變數在data中的順序(按實際日期排序,而不是alphabetically)。但是結果是這樣的:

注意Subject 002中,17MAY2016的record排在了16MAY2016的前面,並不是data裡面的順序。後來bing才知道,原來定義變數的order=data,PROC REPORT並不是從當前這個group中查找原始data的順序,實際上這裡並沒有任何group的概念。PROC REPORT是從整個data中獲取順序。在上面的例子中,17MAY2016出現在了subject 001的第一位,這樣PROC REPORT會把17MAY2016的順序放在最前面。於是在第二個subject的records裡面,17MAY2016就排在了最前面(因為它在整個data裡面出現的順序比該subject的其他兩個日期都要早)。

解決方案:

結尾附上SAS對這個問題的解釋:Usage Note 24542: How to get the exact order of your input data set in PROC REPORT output when the ORDER=DATA option is specified in a DEFINE statement


推薦閱讀:

SAS 是一個什麼樣的公司,為什麼常年位於最佳僱主前幾名?
SAS入門指南
sas界面為什麼那麼丑?
SAS入門書籍有哪些值得推薦?
有一定SAS基礎後如何深入學習?

TAG:SAS |