我正在写一个Stata插件,插件需要知道变量的顺序才能访问数据。为了解决这个问题,我构建了一个 C++ 函数,该函数在包含变量列表的宏中搜索正确的位置。但是,这受到 Stata 中字符串长度的限制。
我目前得到的变量列表如下:
qui ds
local varlist = "`r(varlist)'"
但这只会给我前 244 个字符。
有没有一种方法可以获得包含所有变量名称的宏,即使列表长度超过 244 个字符?有没有其他有效的方法可以将变量放入我的插件中?
听起来它可能与评估宏有关:
The Stata Journal (2008) 8, Number 4, pp. 586–587 Stata 提示 70:当心评估等号 Nicholas J. Cox
虽然,阅读上述书籍将帮助您理解宏,
一个简单的解决方案是不要使用其中的引文"`r(varlist)'"
传递给当地人
local macroname followedbyyourlongstringthatislongerthan244characters
稍后评估
di "`macroname'"
瞧,看看你的长串!
您也可以将本地人传递给本地人
local newmacroname `oldmacroname'
并检查
di "`newmacroname'"