如何用Stata完成(shui)一篇经济学论文(三):基本命令

目录

  • 变量的生成(gen与egen区别)
  • 变量的删除
  • 变量的更改

在开始正式学习前,有一个小建议,希望大家养成在do-file里写代码的习惯,主要是方便保存已经写过的代码,因为Stata没有回滚(rollback)的功能,所以有时一不小心代码错误造成数据错误,好使用已写过的代码重新来一遍。

如何用Stata完成(shui)一篇经济学论文(三):基本命令_第1张图片

变量的生成(gen与egen区别)

要生成一个新变量,我们就用gen(或者g)和egen,很明显就是generate的意思,gen(或g)后跟要生成新变量的名字(注意名字不能以数字开头),然后跟新变量生成的等价条件(可以加判断条件之类的,我们后面再讲),如果后面没有跟其他等价条件,则生成一个变量,变量里没有值:

* 语法: gen 新变量名称 = 值或者其他变量 *
gen x0

生成一个常量值,像我们之前举过的例子:

gen x1 = 0

生成一个变量x1,x1的值为0。

生成一个变量,值等于另外一个变量的值,如:

gen x2 = hour

这里我们生成了一个变量x2,x2的值等于变量hour的值。

g x3 = hour + 1

生成一个变量x3,x3的值等于hour的值再加1。注意一个gen后只能跟生成的一个新变量,如果要生成n个变量,则需要n行命令。
gen生成的新变量为普通新变量,如我们上面举的例子,如果要生成的新变量是一个计算函数的值,则需要使用egen,如生成变量的平均值、求和等,为了让大家更清楚gen与egen在生成有关计算函数的新变量的区别,我们举个例子:

* 使用stata自带的系统数据库 *
sysuse auto,clear
* 使用gen生成变量price的值的总和 *
g x = sum(price)
*  使用egen 生成变量price的值的总和 *
egen y = sum(price)

如图(这只截取了开头的一部分,没有截完),gen求和为该行及之前逐步求和,egen结果为最终正确的求和。所以在生成新变量会嵌套计算函数时,大家要记得使用egen变量。如何用Stata完成(shui)一篇经济学论文(三):基本命令_第2张图片

变量的删除

  1. 删除列

删除变量我们需要用到drop。drop后接要删除的变量,与gen不同在于,drop可以同时接多个变量,如:

drop x1 x2 x3

把我们刚生成的变量全部删除。
2. 删除行

drop if AQI>100

由于删除行的意思就是,把这一行的所有变量都删除,所以drop后不再接具体变量名,if用来指定要删除的行的条件,关于if,我们在后面会讲。

drop 后必须接变量名或者要删除行的范围,也就是上述两种形式,如果要把数据面板中的所有数据清空,我们可以直接输入

clear
*或者*
clear all

变量的更改

  1. 变量名的更改

如果我们想改变一个变量的变量名,可以通过

rename 原变量名 新变量名

进行更改,如

g x1 = hour
rename x1 xx

生成一个新变量叫x1,并把变量名x1改为xx。这里, rename后也只能接一个变量名,如有n个变量名需更改,需要写n行命令。

  1. 变量值的更改

变量值的更改我们使用replace,replace相当于使用新生成一个变量来覆盖原来的变量,因此语法与gen类似。注意,replace只能替换已有的变量!

* 语法: replace 新变量名称 = 值或者其他变量 *
replace xx = hour+1

把变量xx的值改为 hour+1。

需要提醒的是,Stata命令运行后没有撤销的功能,不像excel数据输错后可以撤销到上一步,所以建议大家刚开始用Stata进行数据处理的时候,尽量不要在原数据上进行replace操作,可以先通过gen生成一个与原数据一样的新变量,再在新变量上进行操作,这样有什么不对的地方可以drop掉这个变量,但原来的数据不会受到影响。

References
https://bbs.pinggu.org/thread-801916-1-1.html

你可能感兴趣的:(经验分享)