按日期计算总数

时间:2016-01-14 04:49:08

标签: sum sas proc

我有以下数据集:

Date          Occupation      Employment
01/01/2005        1             Management
01/01/2005        1             Management
01/01/2005        1             Science
01/01/2006        1             Science
05/01/2006        1             Operational
01/01/2006        1             Science
for each month and year from January 2005 until December 2015.

我想要的是每个月和每年变量就业的每个类别的总计。

因此,对于上面的示例,它将类似于以下内容:

Date            Occupation_Total       Employment
01/01/2005           2                 Management 
01/01/2005           1                 Science
01/01/2006           2                 Science
01/01/2006           1                 Operational

实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

在数据步骤中,使用月份和年份函数提取月份和年份。 通过连接提取的月份和年份来创建密钥。然后你可以使用proc sql进行总结,尝试以下方法:

data ds;
set ds;
month=month(date);
year=year(date);
key=catx("_",month,year);
run;

Proc sql;
create table summary as
select employment,key,sum(occupation) as occupation_total
from ds
group by employment,key;
quit;

希望这有帮助。

答案 1 :(得分:2)

这是由组生成摘要统计信息。 Proc Means或Proc Freq是合适的。我将演示proc意味着并非所有职业的值都为1。

proc means data=have nway;
class date employment;
format date yymon7.;
var occupation;
output out=want sum(occupation)=total_occupation p25(occupation)=occupation_p25;
run;

proc print;
run; 

答案 2 :(得分:0)

您必须使用运算符

对数据进行分组

如果是第一个就业....如果是最后一次就业....

以下是此运算符的解释,它有助于对数据进行分组,然后使用sum

http://www.pauldickman.com/teaching/sas/set_by.php