批量处理变量名和标签的小方法
本文作者:王 彤,中南财经政法大学统计与数学学院本文编辑:陈丹慧技术总编:余术玲爬虫俱乐部云端课程爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦!》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元!
导读我们在将数据库或本地的数据导入Stata时,可能需要重命名变量名,给变量插入标签以让数据使用者快速了解数据结构与用途。在之前的文章中,我们学过用rename命令和label命令分别处理变量名和标签。这篇文章我们介绍一个批量处理变量名和标签的小方法:nrow命令和labone命令。
labone命令(1)命令介绍labone命令可以将数据第一行或前面某几行作为变量的标签,并删除或保留这几行数据。(2)事先准备labone命令为外部命令,需要事先安装。命令为: ssc install labone,replace(3)命令语法labone [varlist] [,options](4)命令注释varlist指定制作标签的变量,如果未指定,默认为全部变量option选项描述nrow(numlist)指定使用哪一行的内容标记变量 ;如果未指定,则默认使用第一行concat(concat_strings)如果使用多行的内容标记变量,通过指定的字符串连接来自不同行的内容;默认是由空格连接nospace在使用不同行的内容作为标签时,中间不用空格连接(5)举例说明首先使用import excel命令导入数据,加firstrow后指定数据的第一行为变量名。添加case选项,结合选项firstrow,可以对第一行的英文变量名进行大小写转换。(ps:数据文件可以通过公众号后台回复TRD_Dalyr.xls来获取哦~)import excel using TRD_Dalyr.xls,firstrow case(lower) clear导入的数据格式如下:
(5.1)如果要把第一行的内容作为变量的标签,命令如下:labone,nrow(1)运行结果如下:
(5.2)如果要把第一、二行对应内容作为前三个变量的标签,命令如下:labone stkcd trddt opnprc,nrow(1,2)运行结果如下:
(5.3)如果要把第一、二、四行内容作为对应全部变量的标签,并且内容之间连接时分别用/和:隔开,命令如下:labone,nrow(1 2 4) concat(/ :)运行结果如下:
(5.4)如果要把第一到四行的内容作为对应前三个变量的标签,并且标签间不用空格隔开,命令如下:labone stkcd trddt opnprc,nrow(1/4) nospace运行结果如下:
nrow命令(1)命令介绍nrow命令可以将变量重命名为数据的第n行值,它的作用有点类似于使用import excel导入数据时使用的firstrow命令,不过不是在导入时使用,而且可以指定用于重命名变量的行数以及只是重命名某几个变量。如果特定变量的第n行的值不是有效的Stata名称,则该命令将使用strtoname函数自动对其进行转换。(2)事先准备nrow命令为外部命令,需要事先安装。命令为: ssc install nrow,replace(3)命令语法nrow [row#] [, keep varlist(varlist)](4)命令注释可选参数描述可选参数row#选择任意不大于数据总行数N的正整数,作为用于重命名变量的行可选参数keepnrow默认是将第n行数据作为变量名,并删除这一行数据,使用keep命令可以保留这些行(5)举例说明首先还是使用import excel命令导入数据,这里我们不加入firstrow选项。import excel using TRD_Dalyr.xls,case(lower) clear导入数据格式如下:
(5.1)如果重命名变量为第一行数据的值,命令如下:nrow运行结果如下:
(5.2)如果要重命名变量为第四行数据的值,并删除前四行数据,命令如下:nrow 4运行结果如下:
(5.3)如果要重命名变量为第一行数据的值,并保留第一行数据,命令如下:nrow,keep运行结果如下:
(5.4)如果要将第一行的对应内容作为变量A-C的名称,并保留原来第一行,命令如下:nrow,varlist(A-C) keep运行结果如下:
今天的内容就是这些了。这两个小命令在实际操作中是非常实用的,感兴趣的小伙伴一起动手试试吧~~
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!