describe using https://stata-press.com/data/r17/even, varlist
1.14 Stata 数据集
sysuse dir
可以快速查看随 Stata 副本提供的所有数据集列表,确保您不仅仅依赖于 auto.dta 这一个数据集。
1.15 示例帮助文件
help examplehelpfile
会指引您到一些相关的文档,以帮助您编写新的 Stata 命令,并创建相应的帮助文件
1.16 查找系统信息
sysdir
命令通常由程序员或需要搜索特定程序位置的用户使用。
例如,如果您下载了其他用户编写的程序,这些程序文件可能会存储在 Stata 的特定文件夹中,比如 "PLUS" 文件夹。
通过使用
sysdir
命令,您可以找到这些文件的准确路径,从而方便您管理和调用这些程序文件。
1.17 记录命令运行时间
我们使用内置的定时器选项来记录特定命令或一组命令的运行时间,例如:
webuse highschool, clear //加载数据集
timer clear //清除任何已经存在的定时器设置 timer on 1 //启动定时器 1 svy: regress weight height //在该定时器下运行命令 timer off 1 //停止定时器 1
timer on 2 svy: regress weight height sex timer off 2
timer list //显示了两个定时器的结果,包括运行时间和消耗的系统时间
有关更详细的信息,可以参阅
help timer
和
help rmsg
帮助文件。
2. 学会使用
local
和内置命令
理解和掌握
local
对于提升编程技能至关重要。它可以使您的代码更加简洁整洁。以下是一些日常问题的建议:
2.1 使用变量标签局部变量
通过读取变量标签并将其存储为剧本,我们可以在生成图表时使用它们进行标记或其他操作。例如:
foreach x of varlist xx-yy { local v : var label `x' twoway line yvar xvar, title("`v'") }
2.2 使用值标签作为局部变量
lab de varlab 1 "x" 2 "y"... //定义值标签集varlab lab val varname varlab //把变量varname关联到varlab levelsof varname, local(lclname) //获取变量值,并存储到lclname foreach x of local lclname { //遍历lclname局部变量中存储的每一个值 local t : label varlab `x' //提取出与当前x值相对应的标签,并将这个标签存储到变量t中 twoway line yvar xvar if varname==`x', title("`t'") }
另外,levelsof 命令非常强大。
stataCopy Codelevelsof country, local(lvls) local items = `r(r)'
通过使用
levelsof
命令,我们可以获取某个变量(如示例中的
country
)所有不同值的列表,并将这些值存储到变量
lvls
中。
此外,通过
local items = r(r)
,我们可以得到这些不同值的总数,即
country
变量中不同国家的数量。
这种方法在处理数据时非常有用,尤其是当你需要了解数据集中有多少个独特的分组、类别或时间段时。
同时,查看
return list
能够帮助我们更好地理解
levelsof
命令执行后返回的结果和其他可用的信息,这对于深入分析和处理数据非常有帮助。
sysuse auto gen v1 = mpg > 20 gen v2 = !inrange(mpg, 0, 20) gen v3 = cond(mpg > 20, 1, 0) recode mpg (0/20 = 0) (21/. = 1), gen(v4) gen v5 = irecode(mpg, 0, 20, .)
4.5 reshape
你可以简单地通过输入
reshape long
和
reshape wide
来在长格式和宽格式之间切换。
如果你遇到困难,可以使用
reshape error
来解决。
4.6 快速总结使用 inspect
如果你想快速检查一个变量,那么使用 inspect(可以看
help inspect
)
它类似于 summarize,但在结果窗口中给出了一个整洁的直方图。
sysuse auto summ weight inspect weight
它还有助于快速概览变量的完整性
4.7 值标签
你可以使用
modify
或
replace
选项来防止代码块中断:
lab de mylab 1 "Option 1" 2 "Option 2" 3 "New option", replace
你可以使用
label list
查看所有标签,使用
label drop
删除它们。
而且你可以使用未记录的
_strip_labels
来去除变量的标签。
4.8 样本面板数据集
我们可以使用 Stata 中的
egen
命令和其
seq
选项来高效地创建一个平衡面板数据集。
这个方法避免了复杂的数据操作步骤,直接生成了所需的面板结构:
// 定义面板变量 local units = 40 // 面板变量 local start = 2000 // 时间开始 local end = 2022 // 时间结束
local time = `end' - `start' + 1 local obsv = `units' * `time' set obs `obsv' egen id = seq(), b(`time') egen t = seq(), f(`start') t(`end')
4.9 从 dofiles 运行 dofiles
你可以从一个 dofile 内运行另一个 dofile,这为组织和管理代码提供了极大的灵活
4.10 可视化 Mata 矩阵
你可以使
heatplot
(
ssc install heatplot
)来可视化 Mata 矩阵:
mata A = runiform(10,10) heatplot mata(A)
如果你想看看方差-协方差矩阵或空间误差项的样子,这会非常方便
4.10 clear vs clear all
clear
选项与
clear all
不同:
clear
(无任何选项)
:这个命令仅仅清除当前内存中的数据集,包括其中的所有观测值和变量。
**
clear all
**:这个命令提供了一种更彻底的清理方式。它不仅清除了数据集,还清除了 Stata 内存中几乎所有用户创建的内容,包括但不限于矩阵、mata 对象(Mata 中的变量和函数)、已加载的数据框架、用户定义的程序、全局和局部宏等。使用
clear all
可以让 Stata 回到一个干净的状态,就像刚启动软件时一样。