2

我需要将我的变量重命名var1var60to var2var61即为每个变量的后缀做 +1,这样var2就变成了var3var3变成var4了……等等)。

我尝试了几件事(renvarsrename),但我没有成功,而且我不太擅长用foreach......做循环

4

2 回答 2

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'
    }
于 2013-08-05T14:48:18.003 回答
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' 
 } 
于 2013-08-05T17:15:21.253 回答