楼主: 富超744
39854 17

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

  • 0关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
1018 个
通用积分
48.5850
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
594 点
帖子
20
精华
0
在线时间
218 小时
注册时间
2017-4-27
最后登录
2024-9-16

楼主
富超744 发表于 2019-9-26 07:31:49 |AI写论文
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
拉您入交流群
GMT+8, 2026-2-9 12:39