推 faceoflove56: Thank you very much, 問題已解決^^ 04/16 21:31
※ 引述《faceoflove56 (1234567)》之銘言:
: [軟體程式類別]:
: SAS
: [程式問題]:
: 資料處理
: [軟體熟悉度]:
: 低(1~3個月)
: [問題敘述]:
: Company Year Dummy Count
: Yey 1990 0 2
: Yey 1990 1 2
: Yey 1990 1 2
: Yey 1990 0 2
: Yey 1990 0 2
: Yey 1991 1 3
: Yey 1991 1 3
: Yey 1991 1 3
: Ken 2001 0 1
: Ken 2001 0 1
: Ken 2001 0 1
: Ken 2001 1 1
: Count是我想要求的欄位
: Count:每間公司每年的Dummy加總
: EX: Yey公司,1990年Dummy總數為2,1991年Dummy總數為3
: Count 不一定要在每一ROW全部顯示,也可顯示在最後一項(只要能顯示出每間公司每年
: Dummy加總即可)
: EX:
: Company Year Dummy Count
: Yey 1990 0 .
: Yey 1990 1 1
: Yey 1990 1 2
: Yey 1990 0 2
: Yey 1990 0 2
: Yey 1991 1 1
: Yey 1991 1 2
: Yey 1991 1 3
: Ken 2001 0 .
: Ken 2001 0 .
: Ken 2001 0 .
: Ken 2001 1 1
: [程式範例]:
: 目前不知是否有計算欄位總數的語法
: 請各位指教,感謝。
: -----------------------------------------------------------------------------
方法滿多的,直覺的作法是先用PROC MEANS把dummy的總和依照公司和年份算出來
然後把結果另存新檔:
proc means data=temp sum;
class company year;
var dummy;
output out=temp1 sum=count;
run;
整理另存的新檔,只保留count by company & year的數據:
data temp1;
set temp1;
if _type_ = 3;
keep company year count;
run;
由於PROC MEANS結果外存的檔案會把資料重新自動排序,所以你原本的資料也要排序一次
然後再合併起來即可:
proc sort data=temp;
by company year;
run;
data temp2;
merge temp temp1;
by company year;
run;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 72.191.32.43
※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1429164841.A.05A.html