楼主: alicefeier
2019 8

请教各位大虾循环程序~~~~急!!! [推广有奖]

  • 0关注
  • 0粉丝

初中生

66%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
67 点
帖子
12
精华
0
在线时间
17 小时
注册时间
2010-3-24
最后登录
2011-9-25

楼主
alicefeier 发表于 2010-10-7 06:44:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我是SAS的新手,什么都不会啊~~现在我老板要我把一个循环放进SAS里运行,EXCEL 的Macro也可以~~

公式是这样的:
[П1+At-i) ^(0.139^i)]^(1-0.139) *[G0^(0.139^t)]



其中П是连乘的意思,始于i=0,终止于(t-1)。


附件里有A的数值,从75年到08年。G0=$275,728,722
如果有谁知道这个公式怎么写成do loop 程序,那就太感谢了!!!
小女子在这里拜谢各位牛人!!!

二维码

扫码加我 拉你入群

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

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

关键词:Macro EXCEL sas的 exce xcel 小女子 EXCEL 程序

UPDATED PROMOTION & RELATED DATA_OCT 2010.xls
下载链接: https://bbs.pinggu.org/a-764604.html

44 KB

相关数据附件 已知A值

沙发
jingju11 发表于 2010-10-7 08:24:43
1# alicefeier
t是数据的观测数吗?

藤椅
alicefeier 发表于 2010-10-7 08:59:15
恩是得,从75年到08年。

板凳
jingju11 发表于 2010-10-7 10:18:41
  1. data _null_;
  2. g0 =275728722;
  3. c1 =(0.139 **t) *log(g0);
  4. c2 =1-0.139;
  5. set have nobs =t end =Eof;
  6. _x =0.139 **(t -_n_) *log(1+a);
  7. s0 ++_x;
  8. if Eof then do;
  9.   ss =exp(c2 *s0 +c1);
  10.   put "the result =" ss;
  11. end;
  12. run;
复制代码

SAS data step里的观测顺序本身就是loop. JingJu
alicefeier 发表于 2010-10-7 06:44
我是SAS的新手,什么都不会啊~~现在我老板要我把一个循环放进SAS里运行,EXCEL 的Macro也可以~~

公式是这样的:
[П1+At-i) ^(0.139^i)]^(1-0.139) *[G0^(0.139^t)]



其中П是连乘的意思,始于i=0,终止于(t-1)。


附件里有A的数值,从75年到08年。G0=$275,728,722
如果有谁知道这个公式怎么写成do loop 程序,那就太感谢了!!!
小女子在这里拜谢各位牛人!!!

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
hopewell + 1 + 1 + 1 我很赞同

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

报纸
alicefeier 发表于 2010-10-8 06:58:26
麻烦问一下为什么我运行不起呢?说有错呢:“ERROR: File WORK.HAVE.DATA does not exist.”

地板
alicefeier 发表于 2010-10-8 08:26:34
麻烦问下 **是什么意思 , ++又是什么意思呢?? 不是很看的懂你写的C1部分。为什么我按照你的程序运算出来的结果只有最后一个G呢?

我需要75到08年的所有G。

请问你有邮箱什么的吗?我把原始公式的文件发给你吧。我在论坛里发不了那种写的 很正规的公式。

感谢啊!!!

7
alicefeier 发表于 2010-10-8 08:35:27
6# alicefeier

Jingju同学 你真的是大牛人!!佩服!!!

你写的程序我刚才RUN了一下 08年的数据完全正确啊~~~但是我需要75-08年的所有G, 该怎么修改程序 呢??

8
jingju11 发表于 2010-10-8 21:37:12
alicefeier 发表于 2010-10-8 08:35
6# alicefeier

Jingju同学 你真的是大牛人!!佩服!!!

你写的程序我刚才RUN了一下 08年的数据完全正确啊~~~但是我需要75-08年的所有G, 该怎么修改程序 呢??
  1. data _null_;
  2.    g0 =275728722;
  3.    _c0 = 0.139;
  4.    set have;
  5.    _m0 =_c0 **_n_;
  6.    _m1 =_m0 *log(g0);
  7.    _m2 =(_c0/_m0) *log(1+a);
  8.    _s0 ++_m2;
  9.    _s1 =(1-_c0) *(_m0/_c0) *_s0 +_m1;
  10.    g =exp(_s1);
  11.    put year =;
  12.    put "the result =" g;
  13.    put "************************";
  14. run;
复制代码
我算法的公式最后归结为:比如
t = 1
logG|t=1   =  (1-0.139) * [0.139^(1-1)] * {                                                                                        [0.139^(1-1)] * log(1+A1)} + (0.139^1) * log(G0)
t = 2
logG|t=2   =  (1-0.139) * [0.139^(2-1)] * {                                            [0.139^(1-2)] * log(1+A2) + [0.139^(2-2)] * log(1+A1)} + (0.139^2) * log(G0)
t = 3
logG|t=3   = (1-0.139) * [(0.139^(3-1)] * {[0.139^(1-3)] * log(1+A3) + [0.139^(2-3)] * log(1+A2) + [0.139^(3-3)] * log(1+A1)} + (0.139^3) * log(G0)
以此类推可以累加。
因为不理解其中的实际意义,所以在公式的转换中可能有误。请斟酌使用。JingJu11

9
alicefeier 发表于 2010-10-9 01:48:48
8# jingju11

我只能说,JINGJU同学,你非常非常厉害!!很想多向你讨教!小女子真的万分感激!!帮了大忙~~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 10:42