In addition to Tom Steichen's excellent suggestion,
another possibility is
local wants_pca = inlist("`method'", "pca")
local wants_fac = inlist("`method'", "factor")
local wants_mca = inlist("`method'", "mca")
if (`wants_pca' + `wants_fac' + `wants_mca') == 0 {
di as err "need at least one of factor pca mca"
exit 198
}
I am writing an ado and face a problem in parsing
an option.
I want to add to my syntax an option (method)
which could be mca factor or pca.
The user could specify all the three or only one,
but must specify at least one.
But somehow, I can't figure how to parse that option.
So my code is :
syntax varlist [if] [in] [weight], Method(string)
...
tokenize `method'
/*Here, the only I though of is to parse method and pass arguments one
by one*/
if "$_1" == "factor" {
I run factor analysis
}
if "$_2" == "pca" {
pca
}
etc...
end
By I want the user to be able to specify all the methods he wants.
Also, I realized that if factor is not put in premiere instance, no
method is used.