楼主: lizhewenbei
13109 29

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

  • 15关注
  • 5粉丝

已卖:668份资源

副教授

38%

还不是VIP/贵宾

-

威望
0
论坛币
304 个
通用积分
11.3270
学术水平
4 点
热心指数
13 点
信用等级
5 点
经验
9728 点
帖子
614
精华
0
在线时间
502 小时
注册时间
2008-2-6
最后登录
2025-11-27

楼主
lizhewenbei 学生认证  发表于 2014-11-9 19:20:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教大侠们,怎么用SAS计算每N年的一个指标(比如连续五年的平均值、连续三年的标准差等)
具体而言:
如果要计算这个指标,又怎么做?
将公司利润EARNING每三年加总一次。(数据详见附件)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:标准差 平均值 earning ning Earn 标准差 平均值

test1.rar
下载链接: https://bbs.pinggu.org/a-1669940.html

185.5 KB

本附件包括:

  • test1.csv

沙发
朱蕾Julie 学生认证  发表于 2014-11-9 21:31:00
用sum+earning得到data a;  
merge a a(firstobs=6  rename=(sum=sum_1));
ma5=(sum_1-sum)/5;
即用6年总利润-第一年利润 然后运算  标准差类似
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lizhewenbei + 1 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 1  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
朱蕾Julie 学生认证  发表于 2014-11-9 21:32:21
我理解的 不一定对

板凳
朱蕾Julie 学生认证  发表于 2014-11-9 21:37:25
我理解的 不一定对

报纸
lizhewenbei 学生认证  发表于 2014-11-9 21:39:30
朱蕾Julie 发表于 2014-11-9 21:32
我理解的 不一定对
感谢你的热心回答!我试了试,还是有点没有摸清您的思路,现在我把一个很简洁的数据集(test)放在了帖子的附件上,能否请您给一个代码呢?

地板
斤斤计较你 发表于 2014-11-9 22:38:39
参考一下:

data class;
  set sashelp.class;
  array var_lag[6];
  var_lag[1] = lag(age);
  do i=1 to 5;
  var_lag[i+1] = lag(var_lag[i]);
  end;
  mean = mean(of var_lag[*]);
  std = std(of var_lag[*]);
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lizhewenbei + 3 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 3  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

7
lizhewenbei 学生认证  发表于 2014-11-10 07:46:07
斤斤计较你 发表于 2014-11-9 22:38
参考一下:

data class;
非常好的举例,给我很大帮助!

8
朱蕾Julie 学生认证  发表于 2014-11-10 08:08:23
proc import out=test
datafile="D:\test1.csv"
dbms=csv replace;
getnames=yes;
run;
proc sort data=test out=test1;
by year;
run;
data a;
set test1;
by year;
if last.year ;
sum+earning;
sum_1=sum-earning;
run;
data b;
merge a a(firstobs=3  drop=sum_1 earning rename=(sum=sum_2)) ;
ma=(sum_2-sum_1);
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lizhewenbei + 1 + 1 + 1 + 1 认真负责水平高!!!

总评分: 论坛币 + 1  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
lizhewenbei 学生认证  发表于 2014-11-10 09:03:15
朱蕾Julie 发表于 2014-11-10 08:08
proc import out=test
datafile="D:\test1.csv"
dbms=csv replace;
朱蕾的程序很好,但是如果能考虑stkcd就更好了。因为要针对每一个公司来做,比如stkcd=000001时,1-5年的平均值、2-6年的平均值。

10
朱蕾Julie 学生认证  发表于 2014-11-10 09:11:20
lizhewenbei 发表于 2014-11-10 09:03
朱蕾的程序很好,但是如果能考虑stkcd就更好了。因为要针对每一个公司来做,比如stkcd=000001时,1-5年的 ...
对每个stkcd  就把
proc sort data=test out=test1;
by year;
run;
中的year 改为 stkcd

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

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