Stata程序:是否有类似-Python-中的-zip()-函数

发布时间:2020-10-08 阅读 33

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者:连玉君 (中山大学)
E-Mail: arlionn@163.com


目录


1. 问题背景

如下是 Stata 连享会 FAQ 邮箱 (StataChina@163.com) 中收到的一个问题:

各位老师好,这个是 python 中 for 循环的一种形式,具体的名字我也不太懂,姑且叫配对循环吧。一般的是 foreach i in 遍历对象 {}。请问,Stata 有没有那种 foreach i j in 遍历 对象 1 遍历 对象 2{} 这样的设置呢?Stata 里面可以这样子配对循环吗?

list1 = ['a', 'b', 'c', 'd']
list2 = ['apple', 'boy', 'cat', 'dog']
for x, y in zip(list1, list2):
  print(x, 'is', y)

# 输出
a is apple
b is boy
c is cat
d is dog

我觉得这种遍历方式其实还蛮必要的,因为很多时候比如循环某个程序,最后要输出个图,图名或者图例要设置吧,但设置图名图例肯定要进行所谓的配对循环,而非嵌套循环。

请老师指教。谢谢

2. 解决方法 1 (M1)

Stata 中似乎没有直接可以实现上述功能的函数或命令。不过我们可以自己编写一个,随后如果有必要,可以封装成一个通用程序。

clear
local s1 "a b c d"
local s2 "apple boy cat dog"
local i = wordcount("`s1'")

forvalues s=1/`i'{
   dis ustrword("`s1'",`s') " is " ustrword("`s2'",`s')
}

输出结果如下:

a is apple
b is boy
c is cat
d is dog

3. 解决方法 2 (M2)

补充:2019/1/7 22:55

老师好,我之前也把同样的问题,问了爬虫俱乐部,他们现在也回复了我,也提了一种方案。

也能达到一样的效果,老师们解决问题的方法都很好,都很值得学习。

clear
foreach x in a b c d{
	foreach y in apple boy cat dog{
		if index("`y'","`x'")==1{
			disp "`x'" " " "is" " " "`y'"
		}
	}
}

4. 点评

两种方法都能解决这个问题,但 M2 更好一些,使用 index() 函数可以很好地判断字符串中元素的相对位置,使得程序更具通用性。

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD