我需要将变量var1
重命名为var60
到var2
到var61
(即为每个变量的后缀执行+1,以便{{1} }变为var2
,var3
变为var3
......依此类推。)
我尝试了几件事(var4
,renvars
),但我没有成功,我不擅长用rename
进行循环...
答案 0 :(得分:2)
这是一个两步法
forvalues i =1/60{
rename var`i' var`=`i'+10'
}
forvalues i =11/70{
rename var`i' var`=`i'-9'
}
自动数据示例:
sysuse auto
rename make var1
rename price var2
rename mpg var3
forvalues i =1/3{
rename var`i' var`=`i'+10'
}
forvalues i =11/13{
rename var`i' var`=`i'-9'
}
答案 1 :(得分:2)
也可以倒退:
forval i = 60(-1)1 {
local j = `i' + 1
rename var`i' var`j'
}
这取代了@Metrics建议的两个循环。那些由代码行数的倒数支付的代价将会改为
forval i = 60(-1)1 {
rename var`i' var`=`i' + 1'
}