![]() 这是 TidyFriday 社区推出的第一篇 Stata 的教程,为了吸引大家对 Stata 的兴趣,先不从最基础的讲,而是讲述一个使用 Stata 提高研究效率的案例。 国家资产负债表研究中心 CNBS 会在他们的服务器上定期推出 中国宏观杠杆率数据[1],是下面这个样子的: 在左下角有个数据下载按钮,点击就可以下载数据了,下载链接为:http://114.115.232.154:8080/handler/download.ashx ,下载之后会得到这个 xlsx 文件,这个文件的内容是这样的: 如果我们经常需要用这个数据,然后每次要用的时候都要打开这个网站下载,而且这个网站的网址还是个 IP 地址,谁记得住啊!所以如果我们能写个小程序自动获取然后整理好这个数据,最好再配个画图的功能。 那么我们先用 Stata 完成下载数据、整理数据、图表绘制这三个操作: 下载和整理数据注意这个年份实际上是个月份变量:
整理好的数据是这样的: 然后我们在画个图把这些数据展示出来:
这样我们就完成了刚刚设想的整个流程,下面就是本文的重点了,就是如何编写一个 Stata 命令,把上面这个流程整合进去,让以后我们想调用这个数据的时候,一条命令就完成! 我们先写一个最简单的 Stata 命令: program def myprog di "Hello, World!"end 把这个程序保存为一个
那么对于本案例,我们可以编写一个这样的 *! 自动获取和展示中国宏观杠杆率数据*! 程振兴 2019年4月1日*! 中国宏观杠杆率数据:http://114.115.232.154:8080/*! 示例:cmlrd*! cmlrd, plotcap program drop cmlrdprogram define cmlrd syntax [, plot] di "获取数据中···" qui copy "http://114.115.232.154:8080/handler/download.ashx" "CNBS中国杠杆率数据.xlsx", replace di "数据来源:国家资产负债表研究中心(CNBS)" qui{ import excel "CNBS中国杠杆率数据.xlsx", sheet("Data") firstrow clear drop J K L drop in 1 destring, replace gen date = date(年份, "DMY") order date format date %tdCY-N-D drop 年份 gen 月份 = mofd(date) format 月份 %tmCY-N order 月份 drop date label var 月份 "数据月份" } if "`plot'" != ""{ tw line 居民部门 非金融企业部门 政府部门 中央政府 /// 地方政府 实体经济部门 金融部门资产方 金融部门负债方 月份, /// lp(solid solid solid solid solid solid solid solid) /// lc("166 206 227" "031 120 180" "178 223 138" "051 160 044" "251 154 153" "227 026 028" "253 191 111" "255 127 000") xti(日期) /// note("数据来源:国家资产负债表研究中心(CNBS)") /// ti(中国各部门宏观杠杆率趋势) }end // end of program cmlrd 这里涉及了一些 Stata 编程的 Tips: 1. which cmlrd/Users/czx/Library/Application Support/Stata/ado/personal/c/cmlrd.ado *! 自动获取和展示中国宏观杠杆率数据 *! 程振兴 2019年4月1日 *! 中国宏观杠杆率数据:http://114.115.232.154:8080/ *! 示例:cmlrd *! cmlrd, plot 2. 3. 4. 使用 cmlrd这个命令只有两个用法: 1. 全局使用 cmlrd为了以后能够直接使用
推荐放在 !open '/Users/czx/Library/Application Support/Stata/ado/personal/' 打开这个文件夹之后,把 然后你就可以随时使用 cmlrd 命令了! 是不是觉得 Stata 也蛮有趣的! References
|
|