我希望创建一个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
我可以拆分基于word count
的varlist
来创建depvar
和biggroup
变量,就像我对depvar
所做的那样。
但是,我不确定如何为ingroup
和outgroup
创建额外的列表。问题是它们都可以包含不同数量的变量,我不知道如何使用syntax
或args
命令来区分它们。
发布于 2018-06-06 04:41:39
您还可以为每个选项使用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
https://stackoverflow.com/questions/50708161
复制相似问题