Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Martin Weiss" <martin.weiss1@gmx.de> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | RE: st: RE: RE: RE: Undocumented limitation of describe (and hence -ds-) in Stata 10? |
Date | Tue, 6 Apr 2010 22:02:16 +0200 |
<> "I don't have access to Nick's article, unfortunately, so I don't know if he indicates where this is documented." The article says that it is documented in [U], 18.3.4, where you would find the following: " Stata's expression parser is limited to handling strings of 244 characters. Strings longer than that are truncated. The copy operation ... is not limited-it can copy up to the maximum length of a macro, which is currently 165,200 characters...", and it goes on to state that for Stata MP, there is virtually no limit. "I also don't see anything explaining why/how r(varlist) and other r() macros are sometimes treated like local macros and sometimes not. It's not obvious to me why the first command below is valid while the second is not: local x "`r(varlist)'" di `:length local r(varlist)'" That is really because there are no "r() macros". -macro-s come into being in the way you show in the upper line of your code, and as explained in -h macro-. The lower line sets of a frantic search for a -local- of the name "r(varlist)" which cannot be found. Even if you tried to name a -local- "r(varlist)", you would fail: *** clear* local r(varlist) hello good-bye di "`r(varlist)'" di "`r'" *** BTW, where is the supposed place where r-results are treated like -local- -macro-s? -display- is very, very special, since it takes an -expression- as an argument, which brings out the contents of an r-result, whether you derefernce or not (also see Nick`s http://www.stata.com/statalist/archive/2010-01/msg00834.html): *** sysuse auto, clear su mpg di r(mean) di `r(mean)' di "`r(mean)'" *** HTH Martin -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Michael I. Lichter Sent: Dienstag, 6. April 2010 20:31 To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: RE: RE: Undocumented limitation of describe (and hence -ds-) in Stata 10? Thanks, Martin, that does solve my problem. On the question of documentation, though, I don't see anything in the programmer's manual entry on macros regarding limitations on how many characters can be copied from one macro to another with the equals sign. I don't have access to Nick's article, unfortunately, so I don't know if he indicates where this is documented. I also don't see anything explaining why/how r(varlist) and other r() macros are sometimes treated like local macros and sometimes not. It's not obvious to me why the first command below is valid while the second is not: local x "`r(varlist)'" di `:length local r(varlist)' Thanks again. Michael Martin Weiss wrote: > <> > > See also Nick`s http://www.stata.com/statalist/archive/2006-11/msg00769.html > > > > HTH > Martin > > > -----Original Message----- > From: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Martin Weiss > Sent: Dienstag, 6. April 2010 19:16 > To: statalist@hsphsun2.harvard.edu > Subject: st: RE: RE: Undocumented limitation of describe (and hence -ds-) in > Stata 10? > > > <> > > > And "Beware the evaluating equal sign" (NJC parlance :-) ): > http://www.stata-journal.com/article.html?article=pr0045 > > > > ******* > clear > forvalues i = 1/30{ > gen byte testvar`i' = . > } > d, varlist > di "`r(varlist)'" > local x "`r(varlist)'" > di `:length local x' > ma di > ******* > > > HTH > Martin > > > -----Original Message----- > From: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Martin Weiss > Sent: Dienstag, 6. April 2010 19:11 > To: statalist@hsphsun2.harvard.edu > Subject: st: RE: Undocumented limitation of describe (and hence -ds-) in > Stata 10? > > > <> > > Just say - di "`r(varlist)'"-, whether Stata 10 or 11... > > > HTH > Martin > > -----Original Message----- > From: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Michael I. > Lichter > Sent: Dienstag, 6. April 2010 19:06 > To: statalist@hsphsun2.harvard.edu > Subject: st: Undocumented limitation of describe (and hence -ds-) in Stata > 10? > > I found out the hard way that the r(varlist) macro result returned by > -describe, varlist- (and hence -ds- and Nick Cox's -ds3-) is limited to > 243 characters, at least on my computer running Stata 10. Is there a > Stata setting I need to change? The help page says something about > -maxvar-, but this doesn't seem like it should matter, and in any event > doubling -maxvar- has on effect on this result. If this is not a > settings issue, has it been fixed in Stata 11? Thanks. > > ----- > clear > forvalues i = 1/26 { > gen byte testvar`i' = . > } > d, varlist > di r(varlist) > local x = r(varlist) > di `:length local x' > ----- > > -- Michael I. Lichter, Ph.D. <mlichter@buffalo.edu> Research Assistant Professor & NRSA Fellow UB Department of Family Medicine / Primary Care Research Institute UB Clinical Center, 462 Grider Street, Buffalo, NY 14215 Office: CC 126 / Phone: 716-898-4751 / FAX: 716-898-3536 * * 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/