使用默认值在语法中预设强制性字符串选项

Preseting mandatory string options in syntax with default value

考虑以下玩具程序:

program define table_v1.01, rclass
version 15
syntax varlist(fv min = 1 max = 1) [if] [in], pat_ID(string) = Patient_ID
end 

我想强制选择 pat_ID 选项。

此外,由于 90% 的时间它的值都是 Patient_ID,我如何将其设置为默认值?

以下对我有用:

program define foo, rclass

syntax varlist(fv min = 1 max = 1) [if] [in], [pat_ID(string)]

if "`pat_ID'" == "" local pat_ID Patient_ID
display "`pat_ID'"

end

示例:

. foo i.foreign
Patient_ID

. foo i.foreign, pat_ID(Other_ID)
Other_ID

与其他类型的选项(例如那些接受整数或实数的选项)不同,您不能直接为字符串设置默认值。输入 help syntax 将为您提供有关可能的信息。