温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者:宋津泽、徐琬萱 (中山大学)
邮箱:songjz3@mail2.sysu.edu.cn
目录
暂元 (Macro) 是以一个简单的单词来指代一串复杂的字符或表达式。并且根据有效使用范围,暂元又可分为局部暂元 (local macro) 和全局暂元 (global macro)。其中,局部暂元仅在定义它的 do 文件中有效,更精确的来说,局部暂元仅在同时运行的代码范围内有效。相对而言,全局暂元的有效范围更广,即在 do 文件关闭后仍然存在,直至退出 Stata。
存放数字,即将数值赋给此暂元。
. local a 5
. local b = `a' + 7
. dis `a'
5
. dis `b'
12
存放文字,包括变量名称和长字符。
. sysuse auto, clear
(1978 Automobile Data)
. local v1 "price"
. local v2 "weight rep78 length"
. reg `v1' `v2'
Source | SS df MS Number of obs = 69
-------------+---------------------------------- F(3, 65) = 16.16
Model | 246375736 3 82125245.5 Prob > F = 0.0000
Residual | 330421222 65 5083403.42 R-squared = 0.4271
-------------+---------------------------------- Adj R-squared = 0.4007
Total | 576796959 68 8482308.22 Root MSE = 2254.6
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
weight | 5.252098 1.103427 4.76 0.000 3.048401 7.455794
rep78 | 844.9462 302.0363 2.80 0.007 241.738 1448.154
length | -103.6016 37.78457 -2.74 0.008 -179.0626 -28.14063
_cons | 6850.952 4312.738 1.59 0.117 -1762.181 15464.08
------------------------------------------------------------------------------
暂元可进行嵌套,即暂元中的暂元。
. local a1 = 2
. local a2 "var"
. local a3 = 2 * `a1'
. local a4 `a`a1''
. local `a2'`a1' = 2 * `a3'
. dis `a1'
2
. dis "`a2'"
var
. dis `a3'
4
. dis "`a4'"
var
. dis ``a2'`a1''
8
注:调用 numeric 类暂元时,两侧分别加 Tab 键上方反引号 `
和 Enter 键左边单引号 '
。调用 string 类暂元时,需要在 ` '
的基础上两侧加双引号 "` '"
。
若回归变量较为复杂且数量太多,或是需要将不同的回归方式进行分组罗列时,将变量名称直接写入 do 文档会显得繁琐冗杂,此时将变量赋给暂元,就可以使文档较为简洁美观。
. local x var1 var2 var3
. reg y `x'
在循环中使用暂元会非常方便。
. local variables var1 var2 var3
. foreach var of varlist `variables'{}
除上述基本功能外,Stata 还为暂元提供了许多额外的功能。
{local|global} macname : list {uniq|dups...} macname
macname
指暂元的名称。需要注意的是,在输入 local result : list list1 | list2
时,我们不需要在 list1
和 list2
的两侧加入暂元引用符;" "
将其括起来。例如,暂元 A 中有四个元素 first element
、second
、third element
、4
,此时要写成 "first element" second "third element" 4
;A = "a b c b"
,暂元 B = "b b"
,那么A | B = "a b c b"
,如果暂元 B = "b b b"
,那么 A | B = "a b c b b"
。更多详细介绍,请参考 help macro lists
。
uniq A
:将暂元 A 中重复值删除
. local A1 a a b c a
. local result1 : list uniq A1
. di "`result1'"
a b c
dups A
:仅保留 A 中重复值
. local A2 a a b c a
. local result2 : list dups A2
. di "`result2'"
a a
sort A
:将 A 中元素按字母表或字符值排序
. local A3 a a b c a
. local result3 : list sort A3
. di "`result3'"
a a a b c
retokenize A
:将 A 中元素间多余空格删除
. local A4 "a a b c a"
. local result4 : list retokenize A4
. di "`result4'"
a a b c a
sizeof A
:A 中元素的个数
. local A5 "a b c a"
. local result5 : list sizeof A5
. di "`result5'"
4
posof "element" in A
:返回某个元素在 A 的第几个位置,若该元素在 A 中不存在,则返回 0
. local A6 "a b c a"
. local result6 : list posof "c" in A6
. di "`result6'"
3
. local result7 : list posof "e" in A6
. di "`result7'"
0
A | B
:返回 A 和 B 的并集
. local A1 a b c
. local B1 b d c
. local new1 : list A1 | B1
. di "`new1'"
a b c d
A & B
:返回 A 和 B 的交集
. local A2 a b c d
. local B2 b d e f
. local new2 : list A2 & B2
. di "`new2'"
b d
A - B
:将 A 中 B 的元素剔除
. local A3 a b c d
. local B3 b a d e f
. local new3 : list A3 - B3
. di "`new3'"
c
A == B
:判断 A 和 B 的元素及其顺序是否相同,若相同则返回 1,否则返回 0
. local A4 a b c d
. local B4 a b c d
. local C4 a c b d
. local new4 : list A4 == B4
. local new5 : list A4 == C4
. di "`new4'"
1
. di "`new5'"
0
A === B
:判断 A 和 B 的元素是否相同 (不考虑顺序),若相同则返回 1,否则返回 0
. local A4 a b c d
. local B4 a c b d
. local new4 : list A4 === B4
. di "`new4'"
1
A in B
:判断 A 是否是 B 的子集,若是则返回 1,否则返回 0
. local A5 a b c d
. local B5 a b c d e
. local C5
. local new5 : list A5 in B5
. local new6 : list C5 in B5
. di "`new5'"
1
. di "`new6'"
1
Note:产生如下推文列表的 Stata 命令为:
lianxh 暂元 课程主页, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh