你如何通过索引调用本地宏中的元素?
How do you call an element in a local macro by index?
这看起来简单得令人痛苦,但假设我创建了一个名为 example 的 Stata 本地宏:
local example "blah1 blah2 blah3"
我只想使用数字索引得到 blah2,其方式可能类似于
example[2]
用另一种语言。如何在 Stata 中做到这一点?
如果你运行这个脚本你会看到四种获取第二个单词的方法。
local example "blah1 blah2 blah3"
* 1
tokenize "`example'"
di "`2'"
* 2
local example2 : word 2 of `example'
di "`example2'"
* 3
di "`: word 2 of `example''"
* 4
mata : words = tokens(st_local("example"))
mata : words[2]
在 Stata(与 Mata 相对)中,语法 words[2]
是完全合法的,只要 words
是一个变量,即数据集中的一列,但 Stata 中的局部宏是 不是那个意义上的变量。
clear
set obs 3
gen words = "blah" + strofreal(_n)
di words[2]
这看起来简单得令人痛苦,但假设我创建了一个名为 example 的 Stata 本地宏:
local example "blah1 blah2 blah3"
我只想使用数字索引得到 blah2,其方式可能类似于
example[2]
用另一种语言。如何在 Stata 中做到这一点?
如果你运行这个脚本你会看到四种获取第二个单词的方法。
local example "blah1 blah2 blah3"
* 1
tokenize "`example'"
di "`2'"
* 2
local example2 : word 2 of `example'
di "`example2'"
* 3
di "`: word 2 of `example''"
* 4
mata : words = tokens(st_local("example"))
mata : words[2]
在 Stata(与 Mata 相对)中,语法 words[2]
是完全合法的,只要 words
是一个变量,即数据集中的一列,但 Stata 中的局部宏是 不是那个意义上的变量。
clear
set obs 3
gen words = "blah" + strofreal(_n)
di words[2]