我使用{% for address in image.address %}
<img src="{{ address|e('html_attr') }}">
{% endfor %}
制作了TeX表格。根据帮助文件
outreg2不能将TeX格式表相互附加,所以 回归必须以ASCII形式附加,直到最后一次回归, 附加了tex选项。
因此,当我在循环中运行几个回归时,我需要以某种方式识别最后一个循环以添加tex选项。
我的尝试:使用outreg2
我设法为第一个循环指定选项local append
,为后续循环指定选项replace
。是否有类似的东西将选项append
添加到最后一个循环?
tex
答案 0 :(得分:3)
您可以使用word count
宏扩展函数(请参阅help extended_fcn
)来确定要循环的列表中的元素数,并在循环中添加一个计数器来计算循环数。使用if
命令(help ifcmd
),您可以识别最终循环,并相应地更改outreg2
的选项。
请注意foreach
循环语法的更改,因为您直接使用global
。
global dvars var1 var2 var3
local iterations : word count $dvars
local i = 0
foreach dvar of global dvars {
// augment iteration counter
local ++i
// define options (over-specified, but you can revise as desired)
if `i' == 1 local options "replace"
else if `i' > 1 & `i' < `iterations' local options "append"
else if `i' == `iterations' local options "append tex"
// run regression & outreg2
// for now, just display command
*reg `dvar' treatment
di as result `"outreg2 using "file", `options'"'
}
di as result "number of loops = `i'"
答案 1 :(得分:1)
无需查找迭代编号或创建计数器宏。在这种情况下,foreach
循环的最终迭代是在调用dvars
的 last 变量时发生的。
以下是使用Stata的auto
玩具数据集的最小可重复示例:
sysuse auto, clear
local dvars mpg weight length
local append "replace"
foreach dvar in `dvars' {
display "regress `dvar' i.foreign"
if `dvar' == length local tex tex
display `"outreg2 using "file", `append' `tex'"'
local append "append"
}
regress mpg i.foreign
outreg2 using "file", replace
regress weight i.foreign
outreg2 using "file", append
regress length i.foreign
outreg2 using "file", append tex
请注意,最好使用局部宏而不是全局宏 可能的话。