Stata连享会 [主页](https://www.lianxh.cn/news/4
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
目录
8 月中旬参加完首届 Stata 用户大会后,测试了多种 Stata 编辑器,包括 sublime text 3 (ST3)
,atom
, VScode
等等。最终发现我的需求似乎还无需用这些高大上的东西,因为 MC>>MR。
我的需求很简单:把重复的工作系统化、自动化。 我的思路很简单:优化组合现有工具 = 新工具
比如,我做 Stata 讲义时,经常要输入 sysuse "auto.dta", clear
,或者 sysuse "nlsw88.dta", clear
,每次都输入这么长一串,很烦。又如,每次做论文中的几张基本表格(表1:基本统计量;表2:相关系数矩阵;表3:回归结果),都要找出以前的代码,复制粘贴过来。若是自己重新写,怎么着也要折腾个 5-10 分钟吧。
若是有个快捷命令就好了。于是,我用搜狗输入法自带的**【搜狗自定义短语配置】**功能,把这些需要经常用的命令、代码都做成短语,只要输入几个字母就出现一大串代码。
然后,我的打字效率就从蜗牛变猎豹了:
你可以在百度或知乎上搜索关键词【搜狗自定义短语】,相关教程很多,例如:输入法“自定义短语设置”还可以这么玩;搜狗输入法-自定义短语设置的神奇妙用。这里,我只做简要说明。
基本规则如下:
短语
:就是你打字时的缩写,通常是个简单易记的英文缩写,如 whn
;#
:表示输入法中显示的序号 (如上图中,若依次在键盘上敲入 whn
→ 2
,则会输入 我和您。)例如:
st,1 = Stata16
当你采用「搜狗输入法」打字时,只需输入 st
,屏幕上第一个显示出来的词条就是 Stata16
。
又如,你可以作如下配置:
sysuse,1=sysuse "auto.dta", clear
sysuse,2=sysuse "nlsw88.dta", clear
就会产生如下效果:
再来个更给力的。几乎每份 dofile 都涉及结果输出问题,但频繁地敲 esttab
那一大串命令很烦,也很容易出错。索性将其定义为一个 (或一组) 短语,这样日后只需敲 esttab
就可以一次性输入一大段代码了。
这个例子中,我们定义了两种形式的代码,用搜狗输入法输入 esttab
后,你只需确定选择 1
还是 2
就能自动在两种格式之间自由选择了。
esttab,1=
*-----表3:回归结果-------
local s "using $Out\Table3_reg.csv" //执行时包括这一行会输出Excel表格
local m "m1 m2 m3"
esttab `m' `s', nogap compress replace ///
b(%6.3f) s(N r2_a) drop(`drop') ///
star(* 0.1 ** 0.05 *** 0.01) ///
addnotes("*** 1% ** 5% * 10%")
esttab,2=
*----------------------------------------------------begin--------
local s "using $Out\Table3_reg.csv"
local m "m1 m2 m3"
local drop ""
#d ;
esttab `m' `s', compress nogap replace
b(%6.3f) t(%6.2f) star(* 0.1 ** 0.05 *** 0.01)
stats(Cluster N r2_a, fmt(%3s %12.0f %9.3f)) varwidth(20)
drop(`drop')
title("Table1 Determinants of Women's Wage")
mtitle("OLS" "OLS" "OLS with Occupation dummies") ;
#d cr
*----------------------------------------------------over---------
虽然大家的系统不同,搜狗输入法的版本不同,但大体的设定方式是差不多的:
属性设置 → 高级 → 自定义短语设置 → 直接编辑配置文件,然后在打开的文本文件中添加你的配置即可。
下图呈现了设定的过程 (点菜单比较烦人 ^=^):
下面贴出我的部分配置文件,你只需贴入你的配置文件中,根据自己的习惯修改关键词或缩写设定即可。
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
st,1= Stata
lc,1=local ""
gl,1=global ""
ests,1=est store m
sh,1=shellout "$R\.pdf"
vb,1=view browse ""
trace,1=set trace on
trace,2=set trace off
sysuse,1=sysuse "auto.dta", clear
sysuse,2=sysuse "nlsw88.dta", clear
use, 1=use ".dta", clear
pre,1=
preserve
restore
log,1=
cap log close
log using logname, text replace
log close
deli,1=
#delimit ;
#delimit cr
fsum,1=
local v " " //连续变量
local c " " //类别变量
local s "$Out\Table1_sum" //文件名(或路径\文件名)
logout, save("`s'") excel replace: ///
fsum `v', s(mean sd p50 min max) cat(`c') label
tabstat,1=
*-----表1:基本统计量-------
local v " " //填入变量名
local s "$Out\Table1_sum" //存储的文件名(或路径\文件名)
logout, save("`s'") excel replace: ///
tabstat `v', stat(mean sd p50 min max) f(%6.2f) c(s)
pwcorr,1=
*-----表2:相关系数矩阵-------
local v " " //填入变量名
local s "$Out\Table2_corr" //存储的文件名(或路径\文件名)
logout, save("`s'") excel replace: ///
pwcorr_a `v', format(%6.2f) //star(0.05)
esttab,1=
*-----表3:回归结果-------
local s "using $Out\Table3_reg.csv" //执行时包括这一行会输出Excel表格
local m "m1 m2 m3"
esttab `m' `s', nogap compress replace ///
b(%6.3f) s(N r2_a) drop(`drop') ///
star(* 0.1 ** 0.05 *** 0.01) ///
addnotes("*** 1% ** 5% * 10%")
esttab,2=
*----------------------------------------------------begin--------
local s "using $Out\Table3_reg.csv"
local m "m1 m2 m3"
local drop ""
#d ;
esttab `m' `s', compress nogap replace
b(%6.3f) t(%6.2f) star(* 0.1 ** 0.05 *** 0.01)
stats(Cluster N r2_a, fmt(%3s %12.0f %9.3f)) varwidth(20)
drop(`drop')
title("Table1 Determinants of Women's Wage")
mtitle("OLS" "OLS" "OLS with Occupation dummies") ;
#d cr
*----------------------------------------------------over---------
twoway,1=
*------------------------------------------------------------Begin
local gname "$Out\Fig01.wmf" //图形名称和存储位置
#delimit ;
twoway ( )
( )
,
ylabel(, angle(0) grid)
legend(ring(0) position(3))
note("数据来源: 雅虎财经!")
;
#delimit cr
graph export "`gname'", replace
*------------------------------------------------------------Over
prog,1=
capture program drop
program define
version 13.0
end
if,1=
if {
}
else{
}
for,1=
forvalues i=1/`N'{
}
title,1=
*------------------
*-
*------------------
title,2=
*===================
*-
*===================
dotitle,1=
*-------------------------------------
*-日期:
*-目的:
*-方法:
*-作者:连玉君,中山大学岭南学院金融系
*-主页:https://www.lianxh.cn
*-------------------------------------
Statalxh,1=
*------------ Stata连享会 ---------------
*-
fanli,1=Stata 范例:
path,1=
*-注意:执行后续命令之前,请先执行如下三条命令
global path "`c(sysdir_personal)'\PX_A_2017b\A1_intro" //定义课程目录
global D "$path\data" //范例数据
global R "$path\refs" //参考文献
global Out "$path\out" //结果:图形和表格
adopath + "$path\adofiles" //自编程序
cd "$D"
set scheme s2color
*-note:
* `c(sysdir_personal)' 等价于 D:\Stata15\ado\personal
scom,1=
*-Comments:
* 1
* 2
begin,1=
*-----------------------------------------Begin-----------
*-----------------------------------------Over------------
*-Notes:
* 1.
* 2.
md,1=Markdown
toc,1=[toc]
yy,1=``
lianjie,2=- []()
lianj,1=[]()
btsan,1=###
bter,1=##
tupian,1=![]()
zuozhe,1=> 作者:连玉君,中山大学岭南学院金融系
wodezuozhe,1=
 
> **作者**: (大学)
> **E-Mail:**
riqi,1=#$year.$month.$day
riqi,2=#$year年$month月$day日星期$weekday
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。
上述搜狗短语设定都存放在一个名为「PhraseEdit.txt」或「Phrases.txt」的文本文件中 (早期搜狗版本下的后缀可能是 .ini)。以往,我是定期把这份文档中的内容备份到云盘或邮箱中,然后覆盖家中电脑里的同名文件,以保证我那些可爱的自定义短语可以在家里使用。
后来发现,如果注册一个搜狗账号,那么无论在任何电脑上登录这个账号,你的搜狗短语设定会被自动同步。这就意味着,你在办公室定义的短语以及你的输入习惯可以直接迁移到你家里的那台电脑上,以及教室的电脑上。
简言之:注册一个搜狗账号,自动同步你的配置。
按照第二节的介绍,要想设定一个新的搜狗短语,要点 5-6 次鼠标才能打开配置文件「PhraseEdit.txt」。于是,我在 Stata 的 profile.do 文档中定义了一行程序。
每次想要新增短语时,就直接在 Stata 命令窗口中输入 sougou
,「PhraseEdit.txt」文件就会被瞬间打开。
*-------打开搜狗短语配置文件-------
program define sougou
shellout "C:\Users\Administrator\AppData\LocalLow\SogouPY.users\00000002\PhraseEdit.txt"
end
你若效仿此法,只需把上面的代码添加到你的 profile.do 文档中即可。不知道如何打开 profile.do 文档?那就去项目主页 https://gitee.com/arlionn/StataProfile 学习一下。或者看看「聊聊Stata中的profile文件」。
有些同学找不到「PhraseEdit.txt」文件的存放路径,可以采用如下两种方式之一:
本文受 《永澄:凡是出现两次的事情就要考虑系统化、自动化》 的启发。
可以直接在本文底部添加评论,随后我会整理到本文的项目主页:https://gitee.com/arlionn/sougou 中去。当然,您也可以发送邮件至 StataChian@163.com 以便提交你的短语设定。
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh