楼主: lizhewenbei
13110 29

【请教】怎么用SAS计算每N年的一个指标(比如连续五年的平均值、连续三年的标准差等) [推广有奖]

21
lizhewenbei 学生认证  发表于 2014-11-10 10:21:43
朱蕾Julie 发表于 2014-11-10 10:17
proc import out=test
datafile="d:\test1.csv"
dbms=csv replace;
万谢。还有一个日志报错,这是怎么回事呢?
854  data b;
855  do obsnum=3 to last;
856  set a point=obsnum ;
857  by stkcd year;
858  if last.year;
859  end;
860  run;

NOTE: 变量 last 未初始化。
ERROR: POINT= 选项与 BY 语句不兼容。

NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.B 可能不完整。该步停止时,共有 0 个观测和 6 个变量。
WARNING: 数据集 WORK.B 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.01 秒

22
朱蕾Julie 学生认证  发表于 2014-11-10 10:29:01
不好意思  是我发错了  等一下

23
朱蕾Julie 学生认证  发表于 2014-11-10 10:40:13
proc import out=test
datafile="d:\test1.csv"
dbms=csv replace;
getnames=yes;
run;
data a;
set test;
by stkcd year;
if  last.year ;
sum+earning;
sum_1=sum-earning;
if first.stkcd then do sum=earning ;sum_1=0;
end;
run;
data b;
set a (firstobs=3 );
by stkcd year;
if last.year;
run;
data c;
merge a b(drop=sum_1 earning rename=(sum=sum_2)) ;
ma=(sum_2-sum_1);
run;

24
lizhewenbei 学生认证  发表于 2014-11-10 10:50:23
朱蕾Julie 发表于 2014-11-10 10:40
proc import out=test
datafile="d:\test1.csv"
dbms=csv replace;
感谢朱蕾,第一家公司(stkcd=1)的ma计算非常正确,但是从第二家公司(stkcd=2)的ma计算就有些问题了,还请您指点一下

25
朱蕾Julie 学生认证  发表于 2014-11-10 10:52:01
lizhewenbei 发表于 2014-11-10 10:50
感谢朱蕾,第一家公司(stkcd=1)的ma计算非常正确,但是从第二家公司(stkcd=2)的ma计算就有些问题了, ...
第二家的也是从2003年那行开始看的

26
lizhewenbei 学生认证  发表于 2014-11-10 10:54:55
朱蕾Julie 发表于 2014-11-10 10:52
第二家的也是从2003年那行开始看的
看明白了!也就是2001和2002年的可能无法计算,要有一个公认的开始年份(2003)。这个程序已经很棒了!感谢你一直陪着!

27
朱蕾Julie 学生认证  发表于 2014-11-10 10:58:43
不用谢   我弄得很挫   耽误你时间了

28
lizhewenbei 学生认证  发表于 2014-11-10 11:04:17
朱蕾Julie 发表于 2014-11-10 10:58
不用谢   我弄得很挫   耽误你时间了
相当厉害了!比我强很多!有机会当面感谢,我就在人大。

29
mengha 发表于 2016-2-5 10:57:30
非常感谢~

30
xuexiaolin 发表于 2018-4-2 15:56:56
斤斤计较你 发表于 2014-11-9 22:38
参考一下:

data class;
有用~~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 22:54