我正在尝试使用for
循环重命名变量列表。
我的代码如下所示:
local x 99 00 01 02 03 04 05 06 07 08 09 10 11 12
local k 2 4 6 8 10 12 14 16 18 20 22 24 26 28
local n: word count `x'
forvalues i = 1 / `n' {
local a : word `i' of `x'
local b : word `i' of `k'
rename v`b' num`a'
}
我想知道是否可以在不手动编写宏的情况下为宏k
分配范围。请注意,两个值之间的差值不是一。
答案 0 :(得分:2)
在您的情况下,您只需要原始后缀2(2)28,因此加倍1(1)14就足够了。否则help tokenize
。
local x 99 00 01 02 03 04 05 06 07 08 09 10 11 12
tokenize "`x'"
local n: word count `x'
forvalues i = 1/`n' {
local I = 2 * `i'
rename v`I' num``i''
}
其他算术进展也很简单。例如,3(2)...是
local I = 2 * `i' + 1