柚子快报激活码778899分享:stata 重命名

http://yzkb.51969.com/

rename 批量重命名

2.1 圆括号与批量重命名

rename (old1 old2 ...) (new1 new2 ...) [,options]

将需要批量重命名的变量放置在第 1 对圆括号中,新的变量名放置在第 2 对圆括号中,这个操作方法比较简单粗暴,主要有以下几种应用场景:

* 将 stat 重命名成 status,inc 重命名成 income,equ 重命名成 equity

rename (stat inc equ) (status income equity)

* 交换 v1 和 v2 的变量名

rename (v1 v2) (v2 v1)

* 将变量名大写 (还可以使用小写 lower,首字母大写 proper)

rename a b c, upper

2.2 通配符与批量重命名

首先了解一下在重命名过程中可能使用到的几个通配符:

*:表示任意多个字符;

?:表示 1 个字符;

#:表示 1 位或多位数字,其中 (#) 表示 1 位数字,(##) 表示 2 位数字,以此类推。

接下来通过代码来了解一下 rename 和通配符的组合使用:

* 把前缀为 jan 的变量全部重命名为后缀为 1 的变量名,如 janstat → stat1

rename jan* *1

* 去掉 jan 前缀

rename jan* *

* 去掉 jan 后缀

rename *jan *

* 将前缀为 jan 的四位字符重命名为后缀为 1 的两位字符,如 jans → s1,janstat 不会发生变化

rename jan? ?1

* 删除 jan,如 janstat 重命名为 stat,injanstat → instat,subjan → sub

rename *jan* **

* 命名为 jan 前的字符,如 injanstat → in,statjan → stat

rename *jan* *

* 命名为 jan 后的字符,如 injanstat → stat

rename *jan* .*

* 为后缀为 pop 的变量名增加前缀 jan,如 age1pop → janage1pop

rename *pop jan=

* 所有变量增加前缀 pre

rename whatever pre=

* 所有变量增加后缀 jan

rename whatever =jan

* 所有变量增加前缀 pre 且增加后缀 fix

rename whatever pre=fix

* 将由字母 v+ 数字的变量名重命名为 stat+ 数字,如 v1→stat1

rename v# stat#

* 增加括号后表示重命名 v 后面跟 1 位数字的变量,v10 不会被重命名

rename v(#) stat(#)

* stat10 → stat_2010,stat2 不会发生改变

rename stat(##) stat_20(##)

* stat1 → stat_2001,stat10 不会发生改变

rename stat(#) stat_200(#)

* 重命名为倒序变量名,如 v8 → v1,v7 → v2,v6 → v3

rename v# v#, renumber sort

* 数字起始值 10,如 v1 → v10,v2 → v11

rename v# v#, renumber(10)

* a → v1,b → v2,c → v3

rename (a b c) v#, addnumber

* a12 → a21,a32 → a23

rename a(#)(#) a(#)[2](#)[1]

3. rename 命令选项

addnumber:在末尾添加顺序编号;

addnumber(#):在末尾添加指定起始值的顺序编号;

renumber:按顺序重新编号;

renumber(#):指定起始值开始顺序编号;

sort:编号前进行排序;

dryrun:报告但不进行重命名;

r:将变量名储存在 r() 中,编程时调用;

upper:将字母转换为大写;

lower:将字母转换为小写;

proper:将字母转换为首字母大写。

4. 实例应用

. clear

. * 随意生成几个以 number 开头的变量

. set obs 1

. forval i = 8/12{

2. gen num`i'=_n

3. }

. list, noobs

+-------------------------------------+

| num8 num9 num10 num11 num12 |

|-------------------------------------|

| 1 1 1 1 1 |

+-------------------------------------+

. * 将这些变量更改为首字母大写

. rename *, proper

. list, noobs

+-------------------------------------+

| Num8 Num9 Num10 Num11 Num12 |

|-------------------------------------|

| 1 1 1 1 1 |

+-------------------------------------+

. * 将 Num8 重命名为 Num_2008

. rename Num(##) Num_20(##)

. rename Num(#) Num_200(#)

. list, noobs

+------------------------------------------------------+

| Num_2008 Num_2009 Num_2010 Num_2011 Num_2012 |

|------------------------------------------------------|

| 1 1 1 1 1 |

+------------------------------------------------------+

. * 将年份重新以数字 5 为基准重新编码

. rename Num_# Num_#, renumber(5)

. list, noobs

+---------------------------------------+

| Num_5 Num_6 Num_7 Num_8 Num_9 |

|---------------------------------------|

| 1 1 1 1 1 |

+---------------------------------------+

. * 在 Num 后增加 ber 后缀

. rename Num_# Number_#

. list, noobs

+------------------------------------------------------+

| Number_5 Number_6 Number_7 Number_8 Number_9 |

|------------------------------------------------------|

| 1 1 1 1 1 |

+------------------------------------------------------+

. * 去掉后缀 ber

. rename *ber_# *_#

. list, noobs

+---------------------------------------+

| Num_5 Num_6 Num_7 Num_8 Num_9 |

|---------------------------------------|

| 1 1 1 1 1 |

+---------------------------------------+

. * 使用圆括号命名前三个变量

. rename (Num_5 Num_6 Num_7) (一 二 三)

. list, noobs

+------------------------------+

| 一 二 三 Num_8 Num_9 |

|------------------------------|

| 1 1 1 1 1 |

+------------------------------+

. * 为汉字增加数字后缀

. rename (一 二 三) num#, addnumber

. list, noobs

+------------------------------------+

| num1 num2 num3 Num_8 Num_9 |

|------------------------------------|

| 1 1 1 1 1 |

+------------------------------------+

柚子快报激活码778899分享:stata 重命名

http://yzkb.51969.com/

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。
大家都在看: