查看原文
其他

rename group批量修改变量名

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王碧琪

文字编辑:张馨月

技术总编:李朋冲


大家在进行数据处理时经常需要给变量重命名,那么如果想要批量修改变量名,该如何操作呢?在之前的推文rename命令用法一览》中,小编已向大家介绍了rename的基础用法,今天我们就来继续玩转rename,实现变量名的批量修改。


(一)通配符*的使用

    *可以代替任意多个任意字符。我们来对以下变量名称进行操作:

clearinput float(x_102_a y_102_a z_102_a u_102_a v_102_a )1 2 3 4 5end

      1单个*的使用:

如果想把后缀a改为b,可进行如下操作:

rename *a *b,d //把变量名中的a变成b;d是dryrun的缩写,表示只给出报告,而不真正改变变量名

结果如下:



2)多个*的使用:

如果我们想把102换成101,可继续使用通配符*,在102左右两侧分别用*来替代一个或者多个字符:

rename *102* *101*,d //把变量名中的102换成101

结果如下:



(二)通配符#的使用

#可代表一个或者多个数字。其中(#)代表一位数字,(##)代表两位数字,以此类推。我们在数据集中创建如下几个变量:

clearinput float(v11 v12 v13 v1a1 v1a2 v2a1 v2a2)1 2 3 1 2 3 4end

1)数字调序

我们想要把变量名v11,v12,v13后面的两个数字调换位置,可以用(#)来代表一位数字,然后进行调序处理:

rename v(#)(#) v(#)[2](#)[1] ,d //把两数字的位置调换,[1][2]分别代表在第一个位置和第二个位置的数字



这是对数字通配符的单次调用。值得注意的是,对于v11,进行重命名之后没有发生改变,rename依然可以执行。

2)多次调用
另外,我们可以对数字通配符进行多次重复调用。例如,我们想实现把v1a1,v2a1,v2a2改名为v1_1a1,v2_2a1,v2_2a2,可以借助以下命令:
rename v(#)a(#) v(#)[1]_(#)[1]a(#)[2],d //多次调用



(三)renumber的使用

renumber是rename的一个option,可以实现用自然数替换变量名中的数字或者文本,默认从1开始,依次增大。如果在()内标记起始数字,则从该数字开始依次增大。我们来看下面这个例子:

clearinput float(v1 v2 v3 v4 v5)1 2 3 4 5end

我们想要实现把v1-v5中的v改为state,可以借助该选项:

rename v# state#, renumber d



更通常的情况下,我们想把1-5改成从2010开始以表示年份,可借助以下命令:

rename v# state#, renumber(2010) d //把v1-v5批量改为state2010-state2014



(四)addnumber的使用

addnumber是rename的另一个选项,使用方法与renumber类似,也可在变量名的基础上增加自然数并在()内标注起始数字。例子如下:

clearinput float(edu exp promo)1 2 3endrename (edu exp promo) v#,addnumber d //在变量名后面加上从1开始的连续自然数



rename (edu exp promo) v#,addnumber(2010) d //在变量名后面加上从2010开始的连续自然数



今天的介绍就到这里。通过使用rename,我们可以按照自己的需求批量设置变量名称,代替重复的手工操作。关于该命令更为详细的介绍,大家也可以通过help rename group来了解,快来试试吧~



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
      小命令,大不同——insobs插入新值

新的一年,效率满满~(上)

圆蛋快乐

BvD最后一弹——宏观数据宝典

一招搞定并购数据

多图“预警”(二)

您的圣诞礼物到了,请注意查收
BvD数据库介绍之Oriana
frlink:让连接更具“目的性”
多图“预警”(一)
Selenium的等待方式
一举拿下函数图像
BvD数据库介绍之Osiris
来!左边跟我一起画个龙在你右边画一道彩虹~
Selenium登录豆瓣
妙用正则表达式--Python中的re模块(二)
cngcode和cnaddress新鲜出炉!

关于我们

微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存