投稿问答最小化  关闭

万维书刊APP下载

Stata操作小技巧:如何“完美地”复制一个变量?

2023/6/25 8:51:09  阅读:64 发布者:

我们在复制某个变量时候,通常用到的一个命令就是generare/gen”,这个命令的好处在于比较方便的生成新变量。但缺点在于会丢失部分目标变量的信息。举例如下:

sysuse auto,clear

keep price

gen new_var=price

sum price new_var

codebook price new_var

可以看到,在相关的描述性指标中,新变量和price没有任何区别。但在变量标签上,生成的新变量没有label,如图:

当然,我们很多时候还是要图个便利的,所以为懒人开发的命令也会应运而生。这里有个比较好用的命令clonevar,也就是复制变量的意思。

承接上面的命令,我们再用clonevar命令试一试。

clonevar new_var2=price

看效果:

这样,就出现了变量标签。

我们可能立刻就有一个疑问:这个命令这么简单,何必兜这么大圈子~~

所以,还有一些隐秘的技能藏在这个命令背后。

因为举例子的是一个连续变量,连续变量是没有分类变量的类别和类别标签的,如果需要复制类别和类别标签。这个命令就显得非常有必要。

还以这个变量为例,我们继续操作,将price变成一个分类变量。在这里,我们(其实也没有“们”,只有我。。)的策略是利用分位数方法将price分为三分类的变量,然后跟据“高”“中”“低”的分类分别作标记。

xtile p_group=price, nq(3)

label var p_group "price"

label define  v 1"" 2"" 3""

label value p_group v

tab p_group

得到:

除去标签(nolabel):tab p_group, nol

素材已经做好,下一步,我们生成克隆变量~

clonevar new_3=p_group

tab new_3

tab new_3, nol

对比一下相应的generate命令,我们就可以发现,generate并不能把值标签复制过来,还需要自己挨个去设定。

好的,今天的介绍暂时到这里~

转自:“量化研究方法”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com