查看原文
其他

Stata:强大的变量管理命令-vl

连享会 连享会 2022-12-31

👇 连享会 · 推文导航 | www.lianxh.cn

连享会寒假班

作者:桑倩倩 (中央财经大学)
邮箱:sqq6763@163.com


目录

  • 1. 命令介绍

  • 2. 案例演示

    • 2.1 定义变量列表

    • 2.2 变量列表运算

  • 3. 相关推文



温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

在代码写作过程中,你是否每个回归都要重复写一堆相同的控制变量?又或者是,在设定全局暂元代替这一堆控制变量后,某些回归又需要增加或删减控制变量?对于上述繁琐的变量管理问题,vl 命令将会大有帮助。

1. 命令介绍

vl 是一套用于创建和管理变量列表的命令,适用于数十个甚至数千个变量的大数据。该命令包括系统命令和用户命令,具体来看:

  • vl set:初始化系统定义的变量列表。默认情况下对数据集中的所有数值变量进行分类,也可以只对指定变量进行分类;
  • vl move:将变量从一个系统定义的变量列表移动到另一个系统定义的变量列表;
  • vl create:创建用户定义的变量列表。如果熟悉数据集中的变量,并且知道将哪些变量视为分类变量,哪些变量视为连续变量,那么我们可能只需要创建用户定义的变量列表;
  • vl modify:从用户定义的变量列表中添加或删除变量;
  • vl label:将标签添加到用户定义的变量列表中;
  • vl substitute:使用变量运算符创建用户定义的变量列表;
  • vl list:列出系统或用户变量列表的内容;
  • vl dir:显示系统或用户已定义的变量列表;
  • vl drop:删除指定变量列表;
  • vl clear:删除所有变量列表;
  • vl rebuild:恢复变量列表。

2. 案例演示

2.1 定义变量列表

. sysuse auto.dta, clear
. vl set

-------------------------------------------------------------------------------
| Macro's contents
|------------------------------------------------------------
Macro | # Vars Description
------------------+------------------------------------------------------------
System |
$vlcategorical | 2 categorical variables
$vlcontinuous | 2 continuous variables
$vluncertain | 7 perhaps continuous, perhaps categorical variables
$vlother | 0 all missing or constant variables
-------------------------------------------------------------------------------

通过 vl set 命令,系统自动将变量定义为 2 个分类变量,2 个连续变量,7 个不确定变量,0 个全部缺失或常数变量。上述过程类似于使用 4 次 global 命令来定义 4 个全局暂元。

. vl list, min max obs // 列出变量列表内容

-----------------------------------------------------------------------------------
Variable | Macro Values Levels Min Max Obs
-------------+---------------------------------------------------------------------
rep78 | $vlcategorical integers >=0 5 1 5 69
foreign | $vlcategorical 0 and 1 2 0 1 74
headroom | $vlcontinuous noninteger 1.5 5 74
gear_ratio | $vlcontinuous noninteger 2.19 3.89 74
price | $vluncertain integers >=0 74 3291 15906 74
mpg | $vluncertain integers >=0 21 12 41 74
trunk | $vluncertain integers >=0 18 5 23 74
weight | $vluncertain integers >=0 64 1760 4840 74
length | $vluncertain integers >=0 47 142 233 74
turn | $vluncertain integers >=0 18 31 51 74
displacement | $vluncertain integers >=0 31 79 425 74
-----------------------------------------------------------------------------------
. vl move vluncertain vlcontinuous // 把不确定变量列表全部移到连续变量列表

------------------------------
Macro # Added/Removed
------------------------------
$vlcategorical 0
$vlcontinuous 7
$vluncertain -7
$vlother 0
------------------------------

. vl move (rep78) vlcontinuous // 把指定变量 rep78 移到连续变量列表

------------------------------
Macro # Added/Removed
------------------------------
$vlcategorical -1
$vlcontinuous 1
$vluncertain 0
$vlother 0
------------------------------
. vl create power = (gear_ratio displacement weight)
. // 用户自定义变量列表, power 包括 3 个变量.
. // 类似于 global, 不同之处在于 vl 可以通过命令增减变量.
. vl create nonpower = (turn length rep78)

除此之外,vl drop vlother 删掉 vlother 这个变量列表,但 vlother 变量列表中的变量依然在数据集中。drop $vlother 删掉 vlother 中的所有变量。vl rebuild 重建变量列表,适用以下情况:

  • vl drop 指定变量列表后,再使用 vl list 命令会报错,需要使用 vl rebuild 重建变量列表,恢复被删掉的列表;
  • 保存数据的时变量列表会被自动保存,但是重新导入时变量列表不会自动恢复,需要使用 vl rebuild 重建。

2.2 变量列表运算

. vl substitute indepvars = i.vlcategorical##c.vlcontinuous
. // indepvars 包括 vlcategoriacl 所有的类别变量、xvars 所有的连续变量、以及交乘项.
. // 相当于多次使用 gen, vl 的优点在于用简洁的命令表示巨大的变量列表!

. dis "$indepvars
i.rep78 i.foreign headroom gear_ratio i.rep78#c.headroom i.rep78#c.gear_ratio i.foreign#c.headroom i.foreign#c.gear_ratio

. reg mpg $indepvars

Source | SS df MS Number of obs = 69
-------------+---------------------------------- F(16, 52) = 7.91
Model | 1658.51332 16 103.657082 Prob > F = 0.0000
Residual | 681.689583 52 13.1094151 R-squared = 0.7087
-------------+---------------------------------- Adj R-squared = 0.6191
Total | 2340.2029 68 34.4147485 Root MSE = 3.6207
--------------------------------------------------------------------------------------
mpg | Coefficient Std. err. t P>|t| [95% conf. interval]
---------------------+----------------------------------------------------------------
rep78 |
2 | 55.350 32.492 1.70 0.094 -9.849 120.549
3 | 49.477 29.832 1.66 0.103 -10.385 109.339
4 | 65.428 29.198 2.24 0.029 6.838 124.019
5 | 41.589 20.335 2.05 0.046 0.783 82.394
foreign |
Foreign | -53.066 21.264 -2.50 0.016 -95.735 -10.398
headroom | 19.569 11.039 1.77 0.082 -2.583 41.720
gear_ratio | 10.813 5.887 1.84 0.072 -1.002 22.627
省略......
foreign#c.gear_ratio |
Foreign | 10.184 5.565 1.83 0.073 -0.983 21.352
_cons | -44.656 30.314 -1.47 0.147 -105.486 16.175
--------------------------------------------------------------------------------------

3. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 暂元 变量 标签, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Stata教程
    • Stata小白系列之三:数据标签与排序
    • Stata编程:暂元,local!暂元,local!
  • 专题:Stata命令
    • 批量改名:Stata变量名称变身大法
  • 专题:数据处理
    • Stata 数据标签和合并
    • Stata:变量非重复值统计-distinct
    • Stata:虚拟变量专题-生成与使用
    • 七条建议:用Stata处理文字变量和字符变量
    • Stata数据处理:字符型日期变量的转换
    • Stata:elabel命令-强大的标签管理工具
    • Stata:多变量均值和中位数差异检验
  • 专题:Stata程序
    • Stata小白编程:暂元及macrolists命令
    • Stata程序:暂元-(local)-和全局暂元-(global)

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下:连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存