Ado文件,多个变量组的语法

时间:2018-06-05 20:08:28

标签: stata

我希望创建一个ado文件,它有四类变量。

这个想法是用户可以输入如下内容:

myprog depvar biggroup, ingroup(varlist1) outgroup(varlist2)

在此示例中,depvarbiggroup是单个变量,而ingroup至少是两个变量而outgroup是相同但可选的。

到目前为止,我尝试了以下内容:

program myprog, rclass
    version 15
    syntax varlist(min=2 max=2), ingroup(min=2) [outgroup]
    local depvar: word 1 of `varlist'
    ...
end

我可以根据varlist拆分word count以创建depvarbiggroup变量,就像我为depvar所做的那样。

但是,我不确定如何为ingroupoutgroup创建其他列表。问题是它们都可以包含不同数量的变量,我不知道如何用syntaxargs命令来区分它们。

1 个答案:

答案 0 :(得分:2)

您还可以为每个选项使用varlist。或者您可以将它们作为字符串传递。

以下是使用varlist

的解决方案
capture program drop myprog
program define myprog, rclass
    version 14
    syntax varlist(min=2 max=2), ingroup(varlist min=2) [outgroup(varlist min=2)]
    display ""
    display "`varlist'"
    display ""
    display "`ingroup'"
    display ""
    display "`outgroup'"
end

. clear

. generate one = runiform()
. generate two = runiform()
. generate three = runiform()
. generate four = runiform()
. generate five = runiform()
. generate six = runiform()
. generate seven = runiform()

. myprog one two, ingroup(three four) outgroup(five six seven)

one two

three four

five six seven