Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: Re: RE: Re: Using backslash in macros


From   "Martin Weiss" <martin.weiss1@gmx.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: RE: Re: Using backslash in macros
Date   Thu, 7 May 2009 19:41:31 +0200

<>

If Steinar`s WTP is low, he can also take a look at http://www.stata.com/statalist/archive/2008-04/msg01106.html


HTH
Martin
_______________________
----- Original Message ----- From: "Nick Cox" <n.j.cox@durham.ac.uk>
To: <statalist@hsphsun2.harvard.edu>
Sent: Thursday, May 07, 2009 7:36 PM
Subject: st: RE: Re: Using backslash in macros


Martin referred you to an article by me, which is certainly pertinent. Note that this issue is thoroughly ventilated in the manuals at [U] 18.3.11.

The bottom line for you is to use forward slashes for Windows filepath delimiters. Stata will happily translate.

N.B. what you call macrovariables are in Stata called local macros.

Nick
n.j.cox@durham.ac.uk

Martin Weiss

http://www.stata-journal.com/article.html?article=pr0042

Steinar Fossedal

I'm having problems combining macrovariables when the first macro ends
with a backslash. Apparently, the end backslash is not included, and
the following macro is not unpacked. This is not a problem if the two
macros do not follow each other directly. The example below
illustrates the problem:


local indatadir e:\data\stata10\
local table mytable

di "indatadir <`indatadir'>"
di "table <`table'>"

// Backslash missing, macro `table' not unpacked:
di "`indatadir'`table'"
// Backslash ok and `table' unpacked when adding a sign (any letter)
behind the first macro:
di "`indatadir'_`table'"



The result is as follows:

local indatadir e:\data\stata10\

. local table mytable

.
. di "indatadir <`indatadir'>"
indatadir <e:\data\stata10\>

. di "table <`table'>"
table <mytable>

.
. // Backslash missing, macro `table' not unpacked:
. di "`indatadir'`table'"
e:\data\stata10`table'

. // Backslash ok and `table' unpacked when adding a sign (any letter)
behind the first macro:
. di "`indatadir'_`table'"
e:\data\stata10\_mytable



What is the reason behind this, and how can I work around it?

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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