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

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

这是《Stata 编程导论》系列教程的第二讲,本讲及下面的几讲内容将集中于 Do 文档的编程。这节课我们将讲解 Do 文档编程中的一些基础概念:函数、宏、标量和矩阵。

视频讲解(预览版)

一些编程的细节

本节我们将使用 census2c 数据集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
clear all

* 一些编程的细节
use census2c, clear
list, sep(0)

*> +---------------------------------------------------------------------+
*> | state region pop popurb medage marr divr |
*> |---------------------------------------------------------------------|
*> 1. | Connecticut NE 3107.6 2449.8 32.00 26.0 13.5 |
*> 2. | Illinois N Cntrl 11426.5 9518.0 29.90 109.8 51.0 |
*> 3. | Indiana N Cntrl 5490.2 3525.3 29.20 57.9 40.0 |
*> 4. | Iowa N Cntrl 2913.8 1708.2 30.00 27.5 11.9 |
*> 5. | Kansas N Cntrl 2363.7 1575.9 30.10 24.8 13.4 |
*> 6. | Maine NE 1124.7 534.1 30.40 12.0 6.2 |
*> 7. | Massachusetts NE 5737.0 4808.3 31.20 46.3 17.9 |
*> 8. | Michigan N Cntrl 9262.1 6551.6 28.80 86.9 45.0 |
*> 9. | Minnesota N Cntrl 4076.0 2725.2 29.20 37.6 15.4 |
*> 10. | Missouri N Cntrl 4916.7 3349.6 30.90 54.6 27.6 |
*> 11. | Nebraska N Cntrl 1569.8 987.9 29.70 14.2 6.4 |
*> 12. | New Hampshire NE 920.6 480.3 30.10 9.3 5.3 |
*> 13. | New Jersey NE 7364.8 6557.4 32.20 55.8 27.8 |
*> 14. | New York NE 17558.1 14858.1 31.90 144.5 62.0 |
*> 15. | N. Dakota N Cntrl 652.7 318.3 28.30 6.1 2.1 |
*> 16. | Ohio N Cntrl 10797.6 7918.3 29.90 99.8 58.8 |
*> 17. | Pennsylvania NE 11863.9 8220.9 32.10 93.7 34.9 |
*> 18. | Rhode Island NE 947.2 824.0 31.80 7.5 3.6 |
*> 19. | S. Dakota N Cntrl 690.8 320.8 28.90 8.8 2.8 |
*> 20. | Vermont NE 511.5 172.7 29.40 5.2 2.6 |
*> 21. | Wisconsin N Cntrl 4705.8 3020.7 29.40 41.1 17.5 |
*> +---------------------------------------------------------------------+

Stata 中的数据集也是表式的,表的每一行我们称为观测值,每一列我们称为变量。从上面的结果中我们可以看到,census2c.dta 数据集一共有 21 个观测值和 7 个变量。

Stata 数据集中的变量名称必须是互不相同的,同时还要遵守下面的规则:

  1. 不能包含空格;
  2. 不能包含运算符,例如 -, +, *, /
  3. 不能包含 ., ?
  4. 不能以数字开头;
  5. 大小写敏感;
  6. 其它暂时没想起来的。

建议不要使用中文变量名,变量名不宜使用 a, b, c 这种缺乏实际含义的字符,可以使用简单的英文或英文缩写。例如 pop 之类的。

变量列表

help varlist

很多 Stata 命令可以处理不止一个变量,也就是可以接受变量列表,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sum pop - divr
sum pop*
sum *r
sum pop popurb

sysuse auto, clear
reg price mpg - for

foreach i of varlist _all{
di "`i'"
}

foreach i of varlist make price{
list `i' in 1
}

tostring make price, replace
tostring _all, replace
destring _all, replace

中间的部分去哪了?

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

例如:egen + mlabvpos 改变标签的方向减少遮盖:

1
2
3
4
5
6
vguse allstates, clear
egen clock = mlabvpos(ownhome propval100)
tw sc ownhome propval100, ///
mla(stateab) ///
mlabsize(small) ///
mlabvpos(clock)
  1. gwtmean
1
2
3
4
5
6
7
8
9
* 安装
tssc install _gwtmean

* 使用
sysuse auto, clear
keep rep78 price
egen wtmean = wtmean(price), weight(rep78)
* 上面的计算结果和下面的结果是一样的
sum price [w=rep78]
  1. 搜集更多的 egen 拓展函数。

由于时间关系,今天的内容就先到这里了。谢谢~

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

#

评论

Your browser is out-of-date!

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

×