Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: question about macro


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: question about macro
Date   Tue, 9 Mar 2004 11:34:31 -0000

This is a pitfall frequently mentioned on this list, 
e.g. on 11 Dec 2003. 

Your statement 

local ind = r(levels) 

obliges Stata to evaluate the expression to the right of 
the = sign, and there is a limit on the length of expression
that can be handled, which causes truncation in this case. 

You should get where you want to be in one step by 

. levels groups, local(ind) 

Otherwise, don't evaluate where you don't need to, just copy! 

. local ind "`r(levels)'" 

avoids the evaluation. 

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

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of Shige Song
> Sent: 09 March 2004 11:22
> To: statalist@hsphsun2.harvard.edu
> Subject: st: question about macro
> 
> 
> Dear All,
> 
> I am haveing troubles with the length of macro, here is what I did
> 
> . levels(groups)
> 1111 1112 1113 1114 1115 1116 1121 1122 1123 1124 1125 1126 
> 1131 1132 1133
> 1134 1135 1136 1141 1142 1143 1
> > 144 1145 1146 1211 1212 1213 1214 1215 1216 1221 1222 1223 1224 1225
> 1226 1231 1232 1233 1234 1235 1236
> > 1241 1242 1243 1244 1245 1246 1311 1312 1313 1314 1315 1316 
> 1321 1322
> 1323 1324 1325 1326 1331 1332 1333
> >  1334 1335 1336 1341 1342 1343 1344 1345 1346 2111 2112 
> 2113 2114 2115
> 2116 2121 2122 2123 2124 2125 212
> > 6 2131 2132 2133 2134 2135 2136 2141 2142 2143 2144 2145 
> 2146 2211 2212
> 2213 2214 2215 2216 2221 2222 22
> > 23 2224 2225 2226 2231 2232 2233 2234 2235 2236 2241 2242 
> 2243 2244 2245
> 2246 2311 2312 2313 2314 2315 2
> > 316 2321 2322 2323 2324 2325 2326 2331 2332 2333 2334 2335 2336 2341
> 2342 2343 2344 2345 2346
> . local ind=r(levels)
> . display "`ind'"
> 1111 1112 1113 1114 1115 1116 1121 1122 1123 1124 1125 1126 
> 1131 1132 1133
> 1134 1135 1136 1141 1142 1143 1
> > 144 1145 1146 1211 1212 1213 1214 1215 1216 1221 1222 1223 1224 1225
> 1226 1231 1232 1233 1234 1235 1236
> > 1241 1242 1243 1244 1245 1246 131
> 
> As you can see, after extracting the contents of variable 
> "groups" and put
> the categories into a local macro "ind", more than half of 
> the content was
> truancated. Any idea about why, and more importantly, is 
> there a way to
> work around this?
> 
> I am running Stata 8.2 SE, by the way.

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index