【发布时间】:2017-05-13 00:46:06
【问题描述】:
我对在 Stata 中编写 ado 文件比较陌生,遇到了一个我找不到解决方案的问题。
我想在我的程序中有一个选项,它允许使用任何 twoway 选项(请参阅 help twoway_options)并且在使用引号时遇到问题,无论是仅包含空格还是在子命令中,如下所示。
sysuse gnp96, clear
capture prog drop adding_quotes
prog def adding_quotes
syntax [, tw_opts(string)]
line gnp96 date, `tw_opts'
end
// throws error
adding_quotes, tw_opts(text(7000 97 "Middle Text"))
adding_quotes, tw_opts(xtitle(" "))
// runs
adding_quotes, tw_opts(text(7000 97 `""Middle Text""'))
adding_quotes, tw_opts(xtitle(""))
我还要注意,取消 syntax 命令也可以解决问题,但我宁愿保留它,而不必解析整个命令。
是否可以更改syntax 命令以使两个引发错误的命令起作用?
【问题讨论】:
-
我偶然发现了第二个解决方案,除了尼克的解决方案,它在某些情况下可能更好,而不是使用
tw_opts(string)如果使用tw_opts(string asis),则生成的本地tw_opts将输入为来自参数并且能够运行上述任何一个。 -
很好,但这是我的第三点。
标签: stata