数据转置pro之sxpose2

本文作者:崔赵雯,中南财经政法大学金融学院
文字编辑:陈丹慧
技术总编:余术玲

给各位小主请安啦~许久未见,我想死你们了~

image

1.导读

在之前的推文《xpose和sxpose,谁是卧底》中,我们为大家介绍了在Stata中数据转置界的两大“巨星”,今天就再为大家介绍一个它们的升级版命令——sxpose2,让我们一起来揭开它神秘的面纱吧~
image

2.语法及简单应用

作为数据转置的pro版本,sxpose2可谓是独当一面。简单的说,它与xpose和sxpose的不同之处在于它不仅可以对字符型数据和数值型数据进行转置,还增加了保留变量名称和变量标签的选项。

sxpose2是一个外部命令,初次使用需要安装,安装命令为:

ssc install sxpose2

安装完成后将显示完成信息:

image

sxpose2命令的语法结构如下:

sxpose2,clear[options]
选项 描述
clear 这个选项是必须的,它是提醒你转置之后的原始数据将不存在
destring 将字符型数据转换为数值型数据
firstnames 将现有数据集的第一个变量视为转置后数据集的新变量名
force 如果数据集中包含数值型变量,需要force选项将数值型变量转换成字符型变量
format(%fmt) 按照设定的数字显示格式应用于转置数据中
varlabel 在转置后的数据中保留原始数据的变量标签
varname 在转置后的数据中保留原始数据的变量名称

下面我们对这些选项举一些小例子。

image

①关于varlabel选项的小例子:

clear all
input str1 id str1 var1 str1 var2
"a" "d" "g"
"b" "e" "h"
"c" "f" "i"
end
label var var1 "VAR-1" //给变量var1赋予标签VAR-1
label var var2 "VAR-2"
sxpose2, clear firstnames varlabel
list

结果如下:

image

可以看到,加上varlabel选项,转置后的数据中就保留了原始数据的变量标签。

②关于varname的小例子:

clear all
input id str10 name gender math
1 Jack 1 76
2 Tom  0 36
3 Phillip 1 96
end
label define lgender 0 "男" 1 "女" //给同一变量的不同观测值赋标签
label values gender lgender
sxpose2,clear force varname
list 

结果如下:

image

可以看到,通过使用varname选项,使得转置后的数据中保留了原始数据的变量名称。

3.具体实例

通过上述对sxpose2命令选项的介绍,想必大家对sxpose2已经有了初步的了解。下面我们将以长江电力2015年-2019年的一些财务指标为例,举一个sxpose2的简单应用。

image

Excel中数据的形式如图所示,我们可以运用sxpose2命令对数据进行转置,得到我们想要的格式。

clear all
cap mkdir D:/sxpose2
cd D:/sxpose2
import excel 长江电力财务指标.xlsx //导入excel表格
sxpose2,clear force firstnames destring  
list

结果如下:

image

由于数据中既有字符型数据又有数值型数据,我们可以用数据转置的pro版本——sxpose2命令。同时由于转置的数据中包含数值型的数据,因此需要用force选项将数值型数据强制转化为字符型数据;firstnames选项可以将原始数据集中的第一个变量视为转置后新数据集的变量名;destring选项将force选项转换后的字符型数据再转换成数值型数据。
那么用xpose命令得到的结果会是什么样呢?

clear all
import excel 长江电力财务指标.xlsx
xpose,clear

结果如下:

image

可以看到,转置后第一行数据为缺失值,这是因为xpose只能对数值型数据进行转置。

那么使用sxpose命令又会得到什么样的结果呢?

clear all
import excel 长江电力财务指标.xlsx
sxpose,clear force firstnames destring

结果如下:

image

可以看到,它与sxpose2运行的结果一致,这是因为sxpose的force选项可以把数值型数据强制转化为字符型数据,虽然sxpose是对字符型数据进行转置,但可以通过force选项实现对数值型数据的转置。

image

①sxpose2和xpose的区别在于:xpose只能对数值型数据进行转置,sxpose2可以对字符型数据和数值型数据进行转置;同时,sxpose2在xpose基础上增加了保留变量标签的选项。

②sxpose2和sxpose的区别在于:sxpose2在sxpose的基础上加入了保留变量名称和变量标签的选项。

以上就是今天的全部内容啦,你对sxpose2这个命令了解了吗?如果对你有帮助的话,别忘了点个赞呀,加个关注咯。

你可能感兴趣的:(数据转置pro之sxpose2)