楼主: 富超744
32442 17

[编程问题求助] STATA关于forvalues循环 [推广有奖]

  • 0关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
1018 个
通用积分
40.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
603 点
帖子
23
精华
0
在线时间
216 小时
注册时间
2017-4-27
最后登录
2022-10-3

100论坛币
试了一下 forvalues循环 哪怕直接用stata.com 官网的例子 都报错 invalid name
代码如下:

forvalues i=1/13 {
display 'i'
}

提示 r(198) 'i' invalid name

所以请问 stata forvalues 循环到底怎么写?

最佳答案

acs495628 查看完整内容

其实你的程序只有一点小小的错误,而这个错误是你没能正确认识到暂元的用法导致的。
沙发
acs495628 发表于 2019-9-26 07:31:50 |只看作者 |坛友微信交流群
其实你的程序只有一点小小的错误,而这个错误是你没能正确认识到暂元的用法导致的。
  1. forvalues i=1/13 {
  2. display "`i'"
  3. }
复制代码


使用道具

藤椅
acs495628 发表于 2019-9-26 10:45:35 |只看作者 |坛友微信交流群
其实这个错误是因为你没能正确的引用暂元导致的
  1. forvalues i=1/13 {
  2. display "`i'"
  3. }
复制代码
dis `i' //这是暂元正确的引用方式
stata会默认将暂元作为一个变量,但如果内存中不存在该变量(如暂元`i'的内容1,内存中不存在 1 这个变量),stata就会报错,正确的引用方式是在暂元外加入双引号使之以字符串的形式展示。如果stata内存中存在暂元表示的变量,则上述引用不会报错。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
ritaing + 5 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

板凳
317792209 在职认证  学生认证  发表于 2019-9-27 12:46:53 |只看作者 |坛友微信交流群
注意左边的半引号

使用道具

报纸
哈么哦哦 发表于 2019-11-14 19:12:38 |只看作者 |坛友微信交流群
317792209 发表于 2019-9-27 12:46
注意左边的半引号
请问左边半引号如何改?

使用道具

地板
psianoc 发表于 2021-2-6 14:52:00 |只看作者 |坛友微信交流群
哈么哦哦 发表于 2019-11-14 19:12
请问左边半引号如何改?
左边半引号不是英文缩写符号,而是tab上面的那个键

使用道具

7
520wujing 发表于 2021-7-23 16:44:00 |只看作者 |坛友微信交流群
acs495628 发表于 2019-9-26 10:45
其实这个错误是因为你没能正确的引用暂元导致的dis `i' //这是暂元正确的引用方式
stata会默认将暂元作为一 ...
你好,请问下,若forvalues 语句中,含有不连续的i,可以怎么处理呢?就是没有规则,例如2013年、 2015 年、2016年

使用道具

8
acs495628 发表于 2021-7-25 21:47:46 |只看作者 |坛友微信交流群
520wujing 发表于 2021-7-23 16:44
你好,请问下,若forvalues 语句中,含有不连续的i,可以怎么处理呢?就是没有规则,例如2013年、 2015 年 ...
可以依次写出。
  1. forvalues i= 2013 2015 2016{
  2. }
复制代码

使用道具

9
xxbxxb789456 学生认证  发表于 2021-8-19 13:11:33 |只看作者 |坛友微信交流群
acs495628 发表于 2021-7-25 21:47
可以依次写出。
这样不行的

使用道具

10
zdlspace 学生认证  发表于 2021-8-19 14:18:58 |只看作者 |坛友微信交流群
xxbxxb789456 发表于 2021-8-19 13:11
这样不行的
可以配合continue使用循环,例如
  1. forvalues i = 2012(1)2019 {
  2.         if `i'==2013 | `i'==2017{
  3.                 continue
  4.         }
  5. dis `i'+1       
  6. }  // end of forvalues i = 2012 2013 2016 2018
复制代码

使用道具

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

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

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

GMT+8, 2024-5-18 01:40