作者chien533 (谣指部总司令)
站内Statistics
标题Re: [程式] SAS栏位个数加总
时间Thu Apr 16 14:13:58 2015
※ 引述《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://webptt.com/cn.aspx?n=bbs/Statistics/M.1429164841.A.05A.html
1F:推 faceoflove56: Thank you very much, 问题已解决^^ 04/16 21:31