Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: how to use macro `using' in a program which calls for matafunction


From   Oleksandr Shepotylo <[email protected]>
To   [email protected]
Subject   Re: st: how to use macro `using' in a program which calls for matafunction
Date   Wed, 10 May 2006 15:23:39 -0400

I have found mistake myself!

I should use

syntax [varlist] [using/]


Oleksandr Shepotylo wrote:
Hi Satalist users,

I am writing a program that at some point call for mata function:

mata:
void spatlag(string scalar varname, string scalar newvarname, string scalar path)
{
real colvector x, y
st_addvar("float", newvarname)
st_view(x,., varname)
st_view(y,., newvarname)
fh = fopen(path, "r")
W=fgetmatrix(fh) y[.,.]=W*x
}
mata mosave spatlag(), dir(C:\ado) replace
end


It works fine when I type, for example
mata spatlag("var", "newvar", "C:\matrix1")


but it refuses to work if I use it in a program:

program define sptreg

syntax [varlist] [using]
...
mata spatlag ("var", "newvar", `"`using'"')

when I type

sptreg varlist using "C:\matrix1"

it gives an error message:

file using `"C:\weight"' not found
fopen(): 601 file not found
spatlag(): - function returned error
<istmt>: - function returned error

If I change my program by removing double quotes:

program define sptreg

syntax [varlist] [using]
...
mata spatlag ("var", "newvar", "`using'")

it returns another error message:

invalid expression
r(3000);
I guess that the whole problem is how to use quotes properly but I can not find
mistake.

Thanks,

Oleksandr.



*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index