在SAS的data步中,可以使用by分組,在處理過程中會(huì)產(chǎn)生兩個(gè)臨時(shí)變量first.variable和last.variable,這兩個(gè)臨時(shí)變量的值不會(huì)寫到結(jié)果中,這兩個(gè)臨時(shí)變量的賦值情況如下:
由于data step是按行處理每一條觀測的,當(dāng)一條觀測為某一組的第一條記錄時(shí),那么first.variable就為1,否則為0;當(dāng)一條觀測為某一組的最后一條記錄時(shí),那么last.variable就為1,否則為0;如果某一組中只有一條觀測,那么first.avriable=last.variable都為1.因此,可以使用這兩個(gè)變量來篩選每一組中的第一條或最后一條觀測。以下示例演示如何在SAS中使用first & last
考慮這樣一種場景:假設(shè)有某校一學(xué)期內(nèi)組織籃球比賽的數(shù)據(jù),如下所示,每一條觀測對應(yīng)一個(gè)team的一次比賽記錄,我們知道一個(gè)team在一學(xué)期內(nèi)可能會(huì)進(jìn)行多次比賽。
例1:找到每個(gè) team得分最高和最低分別對應(yīng)的進(jìn)球數(shù)
data test;
input team $ points rebounds;
datalines;
Mavs 29 10
Mavs 13 6
Mavs 22 5
Mavs 20 9
Spurs 13 9
Spurs 15 10
Spurs 33 8
Spurs 27 11
Rockets 25 8
Rockets 14 4
Rockets 16 7
Rockets 12 4
LLC 15 9
;
run;
第一步:先按team和points排序
proc sort data=test out=sort_test;
by team points;
run;

第二步:創(chuàng)建臨時(shí)變量first和last
data test1;
set sort_test;
by team points;
first=first.team;
last=last.team;
if first.team or last.team then output;
run;
結(jié)果如下:

由上圖可以看到,first變量為1表示該team得分最低所進(jìn)的球的數(shù)量,last變量為1表示該team得分最高所進(jìn)的球的數(shù)量。我們發(fā)現(xiàn),對于第一個(gè)team LLC,它的first.和last都為1,說明這個(gè)team只進(jìn)行過一次比賽。這里需要注意的是,對于by語句后面的每一個(gè)變量,都會(huì)有一個(gè)對應(yīng)的first和last臨時(shí)變量,并且這些臨時(shí)變量都不會(huì)出現(xiàn)在數(shù)據(jù)集中。
例2:計(jì)算每個(gè) team進(jìn)行比賽的次數(shù)
第一步:先按team排序
proc sort data=test out=sort_test;
by team;
run;
第二步:創(chuàng)建臨時(shí)變量first和last
data test1;
set sort_test;
by team;
if first.team then
number = 0;
number + 1;
if last.team then output;
run;
結(jié)果如下:

-
LLC
+關(guān)注
關(guān)注
38文章
628瀏覽量
80711 -
SAS
+關(guān)注
關(guān)注
2文章
524瀏覽量
34105
發(fā)布評論請先 登錄
AG32VF-MIPI應(yīng)用場景
實(shí)時(shí)示波器的技術(shù)原理和應(yīng)用場景
敏捷合成器的技術(shù)原理和應(yīng)用場景
Switch的應(yīng)用場景
MOS管的應(yīng)用場景
E4360 SAS瞬態(tài)部分不響應(yīng)某些SCPI命令
this的使用場景及與C,Java中的this的區(qū)別
PCIExpress SATA和SAS設(shè)計(jì)驗(yàn)證的簡化
volatile關(guān)鍵字應(yīng)用場景及示例
消息隊(duì)列的5個(gè)常見應(yīng)用場景
請教一下編譯報(bào)錯(cuò)no section to be FIRST/LAST是什么原因呢?
JAVA的堆和棧介紹和內(nèi)存機(jī)制中堆和棧的區(qū)別及變量在內(nèi)存中的分配
SAS:Data step中first和last變量的應(yīng)用場景
評論