楼主: LJL107235
1357 6

[编程问题求助] 代码查错求助 [推广有奖]

  • 0关注
  • 6粉丝

副教授

86%

还不是VIP/贵宾

-

威望
0
论坛币
914 个
通用积分
255.3133
学术水平
13 点
热心指数
28 点
信用等级
10 点
经验
8716 点
帖子
234
精华
0
在线时间
1754 小时
注册时间
2008-10-20
最后登录
2024-4-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
下面是一段简短的循环代码,请问有没有人能告诉我为什么stata会报错:invalid syntax r(198)?

local n _N
local i 1

forvalues j=1/`n'     {
     if (diff2[`j']>0) {
              replace week[`j']=`i'  
         }
         else   {
             local i=`i'+1
         }
}

二维码

扫码加我 拉你入群

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

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

关键词:forvalues forvalue invalid replace values replace local

沙发
xiaofengshen 发表于 2013-10-20 05:33:37 |只看作者 |坛友微信交流群
为啥diff2[`j']要加[]?还有week[`j']?

使用道具

藤椅
ywh19860616 发表于 2013-10-20 08:51:22 |只看作者 |坛友微信交流群
因为没有数据,大致是这样
  1. local i=1
  2. forvalues j=1/`_N'{
  3.      if (diff2`j'>0){
  4.               replace week=`i' in `j'
  5. }
  6.          else{
  7.              local i=`i'+1
  8.          }
  9. }
复制代码
一份耕耘,一份收获。

使用道具

板凳
LJL107235 在职认证  发表于 2013-10-20 10:59:58 |只看作者 |坛友微信交流群
xiaofengshen 发表于 2013-10-20 05:33
为啥diff2[`j']要加[]?还有week[`j']?
diff2[`j']加[]是因为我想以第j行的diff2值作为if语句的判断条件,大于0的话就把week变量的第j行赋值为i。不知道这样做语法对不对?

使用道具

报纸
arlionn 在职认证  发表于 2013-10-21 23:35:45 |只看作者 |坛友微信交流群
local n _N
local i 1

forvalues j=1/`n'     {
     if (diff2[`j']>0) {
              replace week=`i'  in `j'
     }
     else{
              local i=`i'+1
     }
}


ps, 程序的思路有点匪夷所思。

使用道具

地板
LJL107235 在职认证  发表于 2013-10-22 11:21:18 |只看作者 |坛友微信交流群
arlionn 发表于 2013-10-21 23:35
local n _N
local i 1
谢谢连老师。
思路匪夷所思是受C的影响太大了

使用道具

7
arlionn 在职认证  发表于 2013-10-23 23:14:53 |只看作者 |坛友微信交流群
C 是矩阵的思路,要逐个观察值去处理,Stata 则是以变量为单位进行处理。我刚开始学 Stata 的时候也有这个问题。学过一年的 C。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

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

GMT+8, 2024-5-2 17:14