我正在使用 Stata 命令 synth
,它采用 numlist 作为参数。
我需要 numlist 来获取 2,000 多个值。请注意,在这种情况下,forvalues 不是一个可行的解决方法,除非我弄错了。我使用的是 Stata MP 13.1。在 help limit
中,它表示 numlist 的大小限制为 2,500。但是,当我运行以下代码时,我收到错误代码“r(123) 无效的 numlist 有太多元素。”
foreach i of numlist 1/1601 {
display `i'
}
此代码运行时没有错误:
foreach i of numlist 1600{
display `i'
}
有没有办法允许numlist大于 1,600 个元素?另外,为什么帮助限制
告诉我我有 2,500 个可以使用,但不允许超过 1,600 个?
编辑添加:nlist
,用于解析numlist,指定最大值为1,600。那么也许 1,600 是合适的最大值?在这种情况下,帮助限制
页面似乎不正确。
第二次编辑添加:synth
是一个匹配命令,您为其提供一个numlist 控制单元以包含在匹配过程中。因此,如果您的面板包含 2000 个单元和 10 个时间段,您可以指定 1,999 个单元作为潜在控制单元。可能可以使用forvalues
,但需要对synth
ado 文件进行一些显着的编辑。
最佳答案
尝试连接数字列表,或使用forvalues
:
set more off
// option 1, or some variation
numlist "1/1600"
local firstlist `r(numlist)'
numlist "1601/1603"
local all `firstlist' `r(numlist)'
foreach i of local all {
display `i'
}
// option 2
forvalues i = 1/1603 {
display `i'
}
forvalues
被记录为速度更快,因此,如果可以的话,请使用它。
“宏中的字符数”有限制,具体取决于 Stata 风格,如帮助限制
中所述:
8,681
165,200
1,081,511
更新
但这不起作用:
foreach i of numlist `all' {
display `i'
}
报告
invalid numlist has too many elements r(123);
因此,如果用户编写的命令解析为 numlist,您也可能会遇到问题。我的建议是尝试并报告。
关于stata - Stata 中的 Numlist 限制低于“帮助限制”建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804271/