Ado файл, синтаксис для нескольких переменных групп - PullRequest
0 голосов
/ 05 июня 2018

Я хочу создать файл ado, который имеет четыре категории переменных.

Идея состоит в том, что пользователь может ввести что-то вроде:

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

В этом примере depvar и biggroup - это отдельные переменные, а 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, чтобы создать переменные depvar и biggroup, как я это сделал для depvar.

Однако я не уверен, как создать дополнительные списки для ingroup и outgroup.Проблема в том, что они могут включать в себя различное количество переменных, и я не знаю, как их дифференцировать с помощью команд syntax или args.

1 Ответ

0 голосов
/ 05 июня 2018

Вы также можете использовать 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
...