2015-04-12 64 views
1

我有一个虚拟变量emu3,其中如果emu3=0和如果emu3=1emu3=0和1.905意见,我有1.560个观察值。计算SAS中不同年份的SUM

这些数据适用于1992 - 2006年期间。我想计算在emu3=0emu3=1之间每年变量​​的总和。

我试图与这一个:

PROC MEANS DATA=EMUdummy2 NWAY ; 
CLASS emu3 ; 
VAR avgflow ; 
OUTPUT OUT=fam1 SUM=sumt; 
RUN; 

PROC PRINT DATA=fam1; 
VAR sumt; 
RUN; 

但我不知道这是否是正确的,我不知道我是怎么做的不同的一年。

任何人都可以帮助我吗?

+0

你能显示一些你的数据记录吗?可能你只需要将YEAR添加到CLASS语句中即可。不需要创建新的日期变量 – Quentin

回答

0

假设你有一个可变的年份,将它添加到PROC MEANS的类声明中。

PROC MEANS DATA=EMUdummy2 NWAY ; 
CLASS emu3 year; 
VAR avgflow ; 
OUTPUT OUT=fam1 SUM=sumt; 
RUN; 

此外,添加EMU3和年您PROC PRINT

PROC PRINT DATA=fam1; 
VAR emu3 year sumt; 
RUN; 

如果你有一个日期变量(我假设它被称为DATE),但没有一年变量,那么你就可以创建一个YEAR变量是这样的:

data emudummy2; 
    set emudummy2; 
    year = year(date); 
run; 
+0

。您可以简单地在PROC MEANS类语句中使用日期变量,并将日期变量格式化为YEAR4。这应该可以避免程序员编写额外的步骤或创建额外的变量。 – sushil