函数、宏、标量和矩阵(二)

函数、宏、标量和矩阵(二)

继续上次课的内容,这次课我们继续讲解 Do 文档编程中的一些基础概念:函数、宏、标量和矩阵。上次课我们大致介绍了 Stata 数据处理的过程中常用的一些命令和函数。这次我们将集中讲解宏、标量和矩阵。

分组计算

很多 Stata 命令都支持分组运算,例如 help reghelp sum 等。

1
2
3
sysuse auto, clear
bysort for: reg price weight
by for: sum price

再以 census2c.dta 数据集为例子:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

_n_N

观察下面的代码了解 _n_N 的作用和用法:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

总结来说,在没有 by/bysort 分组的时候,_n 表示观测值的行数,_N 表示观测值的总行数;在 by/bysort 分组的时候,_n 表示每组内的观测值行数,_N 表示每组内的观测值总行数。

思考:_n_N 有哪些应用?

_n 还具有循环的作用:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

局部宏

局部宏是 do 文档编程中最为常用的元素之一,它可以用于存储一些临时变量,观察下面的代码体会它的用处:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

思考:比较单独运行上面的两句和一句句运行的结果异同。

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

比较下面两种语句的差异:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

局部宏并不一定需要使用 local 定义:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

local 和循环的搭配。比较下面几种代码的运行结果的差异:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

local 变量还可以相互嵌套:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

local 变量的应用非常广泛,例如将观测值的第一行作为变量名。以 auto.dta 为例,显然这个数据集的第一行都是不适合作为变量名的,我们可以把每个变量第一行的观测值中的空格替换成 _ 并且在数字的开头添加一个 _

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

回顾一下 varlist:

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

全局宏

中间的部分去哪了?

完整的讲义材料可以在加入我的知识星球(线上培训班)后从知识星球下载附件获取~
要了解如何加入,可以阅读关于界面或者添加我的微信咨询。

更多分析参考:使用 Stata 分析中国新冠疫情数据与动态图表制作。这个专题课程中大量使用局部宏构建自动化程序。

作业:全球新冠疫情数据的分析

大家可以自己结合着上面的案例尝试。答案参考:使用 Stata 分析全球新冠疫情数据与动态图表制作

知识星球附件链接:https://t.zsxq.com/NVFiMbu

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×