楼主: 0060429
2600 5

[编程问题求助] local与if不能同时使用,如何改进程序。急! [推广有奖]

  • 0关注
  • 1粉丝

本科生

12%

还不是VIP/贵宾

-

威望
0
论坛币
1051 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
606 点
帖子
72
精华
0
在线时间
69 小时
注册时间
2010-3-18
最后登录
2016-8-15

楼主
0060429 在职认证  发表于 2012-11-17 12:11:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如下程序,希望在chhit满足条件chhit==17-`j' 时,定义一个暂元ar,使得ar为从chhit==17-`j' 这一天开始到第i天的累计收益率。
但是local命令不能和if同时使用,所以无法运行。请问有什么办法可以改进这个程序么?急!万分感谢!!!

mat rmat = J(10,7,0)

forvalues j=1/7{
   forvalues i=1/10{

   local ar=(clsprc[_n+`i']/clsprc)-1 if chhit==17-`j'
   mat rmat[`i',`j']=ar
   }
   
}
二维码

扫码加我 拉你入群

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

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

关键词:Local OCA forvalues forvalue values 程序 mat 收益率 local 如何

沙发
sungmoo 发表于 2012-11-17 13:43:28
if chhit==17-`j'   local ar=(clsprc[_n+`i']/clsprc)-1

藤椅
0060429 在职认证  发表于 2012-11-17 16:07:30
sungmoo 发表于 2012-11-17 13:43
if chhit==17-`j'   local ar=(clsprc[_n+`i']/clsprc)-1
原来这样是可以的~多谢sungmoo!!!
运行之后提示 ar not found

改成mat rmat[`i',`j']=`ar'
后又提示invalid syntax

不知道出了什么问题呢...

板凳
sungmoo 发表于 2012-11-17 16:18:18
mat rmat = J(10,7,0)
forv j=1/7{
forv i=1/10{
if chhit==17-`j'{
loc ar=(clsprc[_n+`i']/clsprc)-1
mat rmat[`i',`j']=`ar'
}
}
}
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

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

报纸
sungmoo 发表于 2012-11-17 16:20:12
注意if的用处与用法:若条件后的行动是多行的,要用{}标识。

地板
woshaguwozai 发表于 2013-8-15 14:14:35
说的很好,也感谢楼上了。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-31 21:25