全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1220 9
2012-04-05
96.jpg

我想求 一个变量 SG= (t年的 sales减去 t-1年的sales) 除以t-1年的sales 乘以100
如图
98.jpg
但我的 date 都是1981到2010之间循环的;
我用什么方法可以求出 SG?
我自己是先把他给转置
proc transpose data=Lc out=SG prefix=ndt;
      var sales;
      by code6 coname notsorted;
          run;

然后再
SG01=(ndt02-ndt01)/ndt01*100; SG02=(ndt03-ndt02)/ndt02*100; SG03=(ndt04-ndt03)/ndt03*100; SG04=(ndt05-ndt04)/ndt04*100;
SG01=(ndt02-ndt01)/ndt01*100; SG02=(ndt03-ndt02)/ndt02*100;


有更简便的办法吗~?
因为我的方法 要来回的导出 储存 导入~
二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-5 13:11:37
1981年的那条记录是什么值?缺失?另外,你第一条是1981,第二条是1983,请问第二条的sg如何计算?
二维码

扫码加我 拉你入群

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

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

2012-4-5 13:35:11
用 lag
二维码

扫码加我 拉你入群

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

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

2012-4-5 13:42:18
proc sort data=lc;
by coname date;
run;
data lc;
set lc;
by coname;
sg=100*(sales-lag(sales))/sales;
if first.coname then sg=.;
if year-lag(year)>1 then sg=.;
run;

二维码

扫码加我 拉你入群

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

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

2012-4-5 13:45:05
456852 发表于 2012-4-5 13:11
1981年的那条记录是什么值?缺失?另外,你第一条是1981,第二条是1983,请问第二条的sg如何计算?
其实我也很诧异这个地方
数据下载下来之后 就没有1982年的
而且 后面有很多缺少的年份
并不是规整的 30年一轮30年一轮
这样有办法计算吗
(例如后面有很多是从97年开始 有的从99年开始)
二维码

扫码加我 拉你入群

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

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

2012-4-5 13:46:34
mymine 发表于 2012-4-5 13:35
用 lag
非常感谢~
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群