SAS筆記 5 FLAG和計數器

2022-08-04 07:45:12 字數 1432 閱讀 2016

考慮這樣一種場景:我們有乙份患者入院檢查的資料,我們知道乙個患者有可能會多次去醫院做檢查,每次檢查的結果可能為陽性,也可能為陰性。我們現在關注的是某乙個患者在若干次檢查中是否出現了陽性結果,在r中我們可以使用any函式,在python中可以利用pandas的groupby函式,在sas中該如何處理呢?今天就立乙個flag來解決它。

1.

***建立資料

data lab;

input patno visit_no outcome;

datalines;

3 10

3 20

3 3 1

1 10

1 2 1

1 30

1 4 1

2 10

2 20

4 1 1

4 2 1

4 3 1;

***利用flag變數記住前乙個觀測的值

proc sort data=lab;

by patno visit_no;

run;

data flag_test;

set lab;

by patno;

retain flag; ***如果結果陽性,flag=1;

***初始化 flag;

if first.patno = 1 then flag =0;

***如果結果陽性,flag=1;

if outcome = 1 then flag = 1;

***執行到最後乙個觀測時輸出;

if last.patno = 1then output;

drop outcome visit_no;

run;

proc print data=flag_test;

title

"listing of data set flag_test";

run;

2.利用sum語句計算每乙個病人的陽性結果數目

***注意:資料集lab必須是排好序的;

data count_test;

set lab;

by patno;

***這裡沒有必要retain count,因為sum語句會自動retain

***初始化 count;

if first.patno = 1 then count =0;

***出現陽性結果,count加一;

if outcome = 1 then count + 1;

***當遇到最後乙個病人,輸出;

if last.patno = 1then output;

drop outcome;

run;

proc print data=count_test;

title

"listing of data set count_test";

run;

8052計數器(定時器0和計數器1)

之前由於同學的乙個小實驗,需要用到頻率計,所以自己想搞乙個出來,於是網上找了很多資料,簡單的有用8052微控制器的定時器和計數器的結合來測其訊號的頻率,還有的是c8051f的捕捉功能,想來想去,還是想用用自己熟悉的8052的計數器功能,畢竟平時都用的是定時器功能,很少用到計數器功能,以便更加深入的運...

Hadoop計數器與自定義計數器(筆記7)

計數器 計數器是用來記錄job的執行進度和狀態的。它的作用可以理解為日誌。我們通常可以在程式的某個位置插入計數器,用來記錄資料或者進度的變化情況,它比日誌更便利進行分析。例如,我們有乙個檔案,其中包含如下內容 hello you hello me 它被wordcount程式執行後顯示如下日誌 在上圖...

PyQt5之QSpinBox計數器

qspinbox是乙個計數器控制項,允許使用者選擇乙個整數值,通過單擊向上 向下按鈕或鍵盤的上 下箭頭來增加 減少當前顯示的值,當然使用者也可以輸入值。在預設情況下,qspinbox的取值範圍是0 99,每次改變的步長值為1。qspinbox用於處理整數值,qdoublespinbox用於處理浮點值...