Monday, March 06, 2006

st: Re: follow-up: trouble expanding a macros

You just have too many quotes. The -display- command can deal with multiple quote-delimited strings pushed up against each other, but the -use- command cannot. Try:

use `dir'withlag_2sls.dta, clear

or:

use " `dir'withlag_2sls.dta", clear

The latter syntax would allow you to have spaces in the file name. Another recommendation is that you use / instead of \ in file paths to avoid potential problems with macro expansion (if your file name were a local macro as well).

Michael Blasnik michael.blasnik@verizon.net

----- Original Message ----- From: "Robert Kraut" <robert.kraut@cmu.edu> To: <statalist@hsphsun2.harvard.edu> Sent: Sunday, March 05, 2006 1:57 PM Subject: st: follow-up: trouble expanding a macros

> All, > > I am still having trouble using a macro to refer to a windows directory: > Explicitly naming the directory & file in a use statement works works. > E.g., > >> use F:\0_stat.data\0_homenet.data\0_freshmen\transition\withlag_2sls.dta, >> clear > > I can define the macro, and display seems to indicate that my definition > is correct: > >> local dir F:\0_stat.data\0_homenet.data\0_freshmen\transition>> di "`dir'""withlag_2sls.dta" >> F:\0_stat.data\0_homenet.data\0_freshmen\transition\withlag_2sls.dta > > However, I still get an error when I add the file name, either > surrounding the filename in quotes or not: > >> use " `dir'""withlag_2sls.dta", clear >> invalid '"withlag_2sls.dta' >> r(198); >> >> use " `dir'"withlag_2sls.dta, clear >> invalid 'withlag_2sls.dta' > > r(198); > > Defining the macro using quotes around the directory names does not seem > to help. Again, the macro seems to expand correctly using the display > command, but not with the use command. > > > local dir "F:\0_stat.data\0_homenet.data\0_freshmen\transition\" > >> . di "`dir'""withlag_2sls.dta" >> F:\0_stat.data\0_homenet.data\0_freshmen\transition\withlag_2sls.dta >> > >> . di "`dir'""withlag_2sls.dta" >> F:\0_stat.data\0_homenet.data\0_freshmen\transition\withlag_2sls.dta >> >> . use "`dir'""withlag_2sls.dta", clear >> invalid '"withlag_2sls.dta' >> r(198); >> > > Any suggestions? I must not be understanding something fundamental > about expanding macros. > > Robert Kraut

* * 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/


Tag:


Links to this post:

Create a Link



<< Home

This page is powered by Blogger. Isn't yours?