在对数据进行分析时,可能会遇到需要针对现有的数据进行预处理的情况。在本节中,我们将用实例讲解常用的几种处理数据的操作,包括对数据进行长短变换、把字符串数据转换成数值数据、生成随机数等。在下一节中,还将利用实例介绍如何定义数据子集。
【例1.4 】长江集团是一家国内大型连锁销售钢管的公司,该集团一直在北京、天津、河北、山西、内蒙古等地展开经营活动,2018—2020年在上述地区的开店情况如表1.6所示。试通过操作Stata 16.0完成以下工作:
(1)对数据进行长短变换。
(2)将数据变换回来,并把地区字符串变量转换成数值数据。
(3)生成一个随机变量,里面包含0~1的15个随机数据。
表1.6 长江集团在2018—2020年的开店情况
在用Stata进行分析之前,我们要把数据录入Stata中。本例中有4个变量,分别是地区、2018年店数、2019年店数以及2020年店数。我们把地区变量设定为region,把2018年店数变量设定为number2018,把2019年店数变量设定为number2019,把2020年店数变量设定为number2020,变量类型及长度采取系统默认方式,然后录入相关数据。相关操作在1.2节中已详细讲述过了。录入完成后,数据如图1.26所示。
图1.26 案例1.4的数据
先保存数据,然后开始展开分析,步骤如下:
进入Stata 16.0,打开相关数据文件,弹出如图1.27所示的主界面。
图1.27 主界面
在主界面的Command文本框中输入操作命令并按回车键进行确认。对应的命令分别如下:
· reshape long number,i( region) j(year):对数据进行长短变换。
· reshape wide number,i( region) j(year)。将数据变换回来。
· encode region,gen(regi):把地区字符串变量转换成数值数据。
· clear:清除原有数据。
· set obs 15:设定一个包含15个样本的数据集。
· generate suiji=uniform():生成一个随机变量,里面包含0~1的15个随机数据。
图1.28所示是对数据进行长短变换的结果。
图1.28 对数据进行长短变换的结果
选择Data|Data Editor|Data Editor(Browse)命令,进入数据查看界面,可以看到如图1.29所示的变换后的数据。图1.30所示是将数据变换回来并把地区字符串变量转换成数值数据的结果。
图1.29 进行长短变换
图1.30 转换成数值数据的结果
选择Data|Data Editor|Data Editor(Browse)命令,进入数据查看界面,可以看到如图1.31所示的变换后的数据。
图1.31 变换后的数据
在将数据变换回来以后,输入第2条命令,通过选择Data|Data Editor|Data Editor(Browse)命令,进入数据查看界面,如图1.32所示。
图1.32 查看数据
选择Data|Data Editor|Data Editor(Browse)命令,进入数据查看界面,可以看到如图1.33所示的生成后的随机数据。
图1.33 随机数据
在定义随机数据时,系统命令默认的区间范围为[0,1],那么如何实现自由取值呢?例如,从[9,18]随机取出15个数据。
操作命令应该相应地修改为如下形式:
clear set obs 15 generate suiji=9+9*uniform()
在命令窗口输入命令并按回车键进行确认的结果如图1.34所示。
图1.34 随机取出15个数据
那么如何选取整数呢?
操作命令应该相应地修改为如下形式:
clear set obs 15 generate suiji=9+trunc(9*uniform())
在命令窗口输入命令并按回车键进行确认的结果如图1.35所示。
图1.35 取整