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