當資料歸戶需要加總多筆數值或累計次數成為一筆資料時就會需要用到累加的處理。 我們在做資料處理時,經常拿到的資料並非整理完成可直接進行統計分析的檔案。資料的呈現可能是個流水帳的方式,也就是同一個 ID 或是歸戶編號會有多筆資料,而在分析上我們需要將資料整合成 1 筆,才能進行後續的處理。 ² 情境 1 :就診次數 每次的就診紀錄就是 1 筆資料,但每個人可能會有不只一次的就診紀錄,如果我們需要分析每個人的平均就診紀錄時,就會需要累計這段時間的就診次數。 ² 情境 2 :每月支出 另一個簡單好理解的範例是計算每個月的花費支出,每個月都有多次的消費支出紀錄,那如果需要知道每個月支出的總金額,就需要以月為歸戶單位,加總該月的花費。 以簡單例子進行操作 延續之前的資料,以手上這份滿意度調查問卷來操作,累計每個人填答的次數。 在進行累計的操作前必須十分清楚資料需要歸戶的單位。以 情境 1 來說,歸戶的單位是人;情境 2 歸戶的單位是月份。 以 SAS 進行資料累計 proc sort data= y_2019; by id Q_date; run; /*依照ID 跟填寫日期做排序*/ data test; set y_2019; by id Q_date; if first.id then count=0; /*這邊會用到if…then的概念*/ count+1; if last.id; /*保留最後1筆ID的資料*/ keep id count; run; 這邊會需要用到排序的語法,在歸戶之前需要 依照歸戶的單位進行排序 。爾後 使用 if … then 的概念進行累計 ,這部分可理解為,依照 ID 排序後,遇到每個不同 ID 的第一筆資料, count 這個變項的數值就歸零,從新開始累計,每遇到相同的 ID 就加 1 。最後 歸人,保留每個人最後 1 筆的資料 。 執行完成後就可以得到每個人問卷填寫的次數。 以 Python 進行資料累計 y_2019["count"]= y_2019['ID'].groupby(y_2019["ID"]).cumcount()