0

我正在写一个Stata插件,插件需要知道变量的顺序才能访问数据。为了解决这个问题,我构建了一个 C++ 函数,该函数在包含变量列表的宏中搜索正确的位置。但是,这受到 Stata 中字符串长度的限制。

我目前得到的变量列表如下:

qui ds
local varlist = "`r(varlist)'"

但这只会给我前 244 个字符。

有没有一种方法可以获得包含所有变量名称的宏,即使列表长度超过 244 个字符?有没有其他有效的方法可以将变量放入我的插件中?

4

2 回答 2

1

听起来它可能与评估宏有关:

The Stata Journal (2008) 8, Number 4, pp. 586–587 Stata 提示 70:当心评估等号 Nicholas J. Cox

于 2013-04-05T04:34:17.793 回答
0

虽然,阅读上述书籍将帮助您理解宏,

一个简单的解决方案是不要使用其中的引文"`r(varlist)'"传递给当地人

local macroname followedbyyourlongstringthatislongerthan244characters

稍后评估

di "`macroname'"

瞧,看看你的长串!

您也可以将本地人传递给本地人

local newmacroname `oldmacroname'

并检查

di "`newmacroname'"

于 2013-11-20T05:08:54.810 回答