在 Stata 中是否有等同于 python enumerate 的东西?
Is there an equivalent of python enumerate in Stata?
在python中,可以遍历值列表并使用枚举访问它们各自的索引。例如:
values=['var2006','var2007','var2008','var2009','var2010','var2011']
for index, value in enumerate(values, start=1):
print(value.replace(value[-4:],str(index)))
哪个returns:
var1
var2
var3
var4
var5
var6
我想在 Stata 中做类似的事情。具体来说,我有一个像 'var2006','var2007','var2008','var2009','var2010','var2011'
这样的变量列表,我想将它们重命名为 'var1','var2','var3','var4','var5','var6'
。我正在尝试使用 foreach
和 rename
的组合,但如果有类似于 python enumerate 的东西,它将为我解决这个问题。
您可以使用带有重新编号和排序选项的重命名命令来完成此操作:
rename var# var#, renumber sort
或者,如果您想单独引用每个变量,您也可以使用 forvalues 循环和局部宏。这将更类似于 Python 的枚举,因为您可以一次引用一个变量:
clear
set obs 100
gen var2006 = 1
gen var2007 = 2
gen var2008 = 3
gen var2009 = 4
gen var2010 = 5
gen var2011 = 6
forvalues i = 2006/2011 {
local j = `i' - 2005
rename var`i' var`j'
}
注意局部宏 j
等于年份减去 2005,您可以将其设置为任何数字以更改变量的名称。
在python中,可以遍历值列表并使用枚举访问它们各自的索引。例如:
values=['var2006','var2007','var2008','var2009','var2010','var2011']
for index, value in enumerate(values, start=1):
print(value.replace(value[-4:],str(index)))
哪个returns:
var1
var2
var3
var4
var5
var6
我想在 Stata 中做类似的事情。具体来说,我有一个像 'var2006','var2007','var2008','var2009','var2010','var2011'
这样的变量列表,我想将它们重命名为 'var1','var2','var3','var4','var5','var6'
。我正在尝试使用 foreach
和 rename
的组合,但如果有类似于 python enumerate 的东西,它将为我解决这个问题。
您可以使用带有重新编号和排序选项的重命名命令来完成此操作:
rename var# var#, renumber sort
或者,如果您想单独引用每个变量,您也可以使用 forvalues 循环和局部宏。这将更类似于 Python 的枚举,因为您可以一次引用一个变量:
clear
set obs 100
gen var2006 = 1
gen var2007 = 2
gen var2008 = 3
gen var2009 = 4
gen var2010 = 5
gen var2011 = 6
forvalues i = 2006/2011 {
local j = `i' - 2005
rename var`i' var`j'
}
注意局部宏 j
等于年份减去 2005,您可以将其设置为任何数字以更改变量的名称。