全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1881 7
2011-06-07
我现在有个表格,比如是:
   x            y            z
198425742.8
198528189.3
198627626.5
198732427.3
1988404418.8
1989360018
199035763.1
199140113.4
199246826.4
1993609214.7
1994570424.1
1995730717.1
199685768.3
199795382.8
199810193-0.8
199910831-1.4
2000119820.4
2001132430.7
200214533-0.8
2003164041.2

我想得出一列新的数据,第一个是2574*(1+2.8%)*(1+9.3%)*(1+6.5%)*(1+7.3%)*……*(1+1.2%)
                                         第二个是2818*(1+9.3%)*(1+6.5%)*(1+7.3%)*……*(1+1.2%)
                                         第三个是2762*(1+6.5%)*(1+7.3%)*……*(1+1.2%)                                       
                                         ……
                                         最后一个16404*(1+1.2%)

我太低端了,这个程序我都没想出来。想烦请前辈们指点一下。 这段程序可以怎么写?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-7 17:08:36
data table;
input x $ y z;
cards;
1984 2574 2.8
1985 2818 9.3
1986 2762 6.5
1987 3242 7.3
1988 4044 18.8
1989 3600 18
1990 3576 3.1
1991 4011 3.4
1992 4682 6.4
1993 6092 14.7
1994 5704 24.1
1995 7307 17.1
1996 8576 8.3
1997 9538 2.8
1998 10193 -0.8
1999 10831 -1.4
2000 11982 0.4
2001 13243 0.7
2002 14533 -0.8
2003 16404 1.2
;
run;
data table_2;
retain tot tot1 1;
if _n_=1 then do until(last) ;
set table end=last;
tot=tot*(1+z*0.01);
end;
set table;
tot1=tot1*(1+z*0.01);
tot2=y*(tot-tot1);
if last then tot2=y*(1+z*0.01);
run;
二维码

扫码加我 拉你入群

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

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

2011-6-7 17:42:59
2# wb8686

太谢谢了,让我仔细学习下!
谢谢好心人的耐心和知识。
二维码

扫码加我 拉你入群

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

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

2011-6-7 20:12:35
复制代码
二维码

扫码加我 拉你入群

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

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

2011-6-8 08:48:40
proc sort data=table ;
by descending x;
run;
data table;
retain f 1;
set table;
bv=1+z/100;
f=f*bv;
want=y*f;
keep x y z want;
run;
proc sort data=table ;
by  x;
run;
二维码

扫码加我 拉你入群

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

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

2011-6-8 15:43:48
2楼朋友的想法很好!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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