楼主: ultimatum0
1686 7

[原创博文] 问关于一个叠加算法的问题 [推广有奖]

  • 0关注
  • 0粉丝

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2012 点
帖子
10
精华
0
在线时间
10 小时
注册时间
2010-10-28
最后登录
2022-12-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有个表格,比如是:
   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%)

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

扫码加我 拉你入群

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

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

关键词:最后一个

回帖推荐

wb8686 发表于2楼  查看完整内容

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 t ...

本帖被以下文库推荐

沙发
wb8686 发表于 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;
已有 2 人评分经验 论坛币 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
crackman + 2 鼓励积极发帖讨论

总评分: 经验 + 3  论坛币 + 3  热心指数 + 2   查看全部评分

使用道具

藤椅
ultimatum0 发表于 2011-6-7 17:42:59 |只看作者 |坛友微信交流群
2# wb8686

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

使用道具

板凳
hopewell 发表于 2011-6-7 20:12:35 |只看作者 |坛友微信交流群
  1. data table;
  2.     input x $ y z;
  3. cards;
  4. 1984 2574 1
  5. 1985 2818 2
  6. 1986 2762 3
  7. ;
  8. data table2(drop=zz);
  9.     set table nobs=nobs;
  10.     tot=y;
  11.     do i=_n_ to nobs;
  12.         set table(keep=z rename=(z=zz)) point=i;
  13.         tot=tot*(1+zz*.01);
  14.     end;
  15. run;
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
crackman + 1 + 1 鼓励积极发帖讨论

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

观钓颇逾垂钓趣 种花何问看花谁

使用道具

报纸
zhaoping603 发表于 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;

使用道具

地板
zhangtao 发表于 2011-6-8 15:43:48 |只看作者 |坛友微信交流群
2楼朋友的想法很好!
数学好就是要天天学

使用道具

7
ultimatum0 发表于 2011-6-9 10:10:08 |只看作者 |坛友微信交流群
4# hopewell
真是才人啊!十分感谢。

使用道具

8
ultimatum0 发表于 2011-6-9 10:14:48 |只看作者 |坛友微信交流群
5# zhaoping603
谢谢前辈,你的方法最适合我的思维模式,我个人比较青睐你的算法。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-11 01:44