I want to store a list of variables in a macro and then call that macro inside a mi()
statement. The original application is for a programme that uses data I cannot bring online for secrecy reasons, and which will include the following statement:
generate u = cond(mi(`vars'),., runiform(0,1))
The issue being that mi()
requires comma separated variable names but vars
is delimited by spaces.
I use the auto
dataset and mark
to illustrate my problem:
sysuse auto
local myvars foreign price
mark missing if mi(`myvars')
In this example, mi()
asks for arguments separated by commas, Stata stops and complains that it cannot find a foreignprice
variable. Is there a utility function that will insert the commas between the macro elements?