我有以下数据集:
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
实现这一目标的最佳方法是什么?
答案 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