Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


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

RE: st: macro compound double quotes


From   "Cohen, Elan" <cohened@upmc.edu>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   RE: st: macro compound double quotes
Date   Tue, 10 Apr 2012 18:07:35 +0000

-mac list _inclcities- should shed some light on the issue.  The only true spaces that Stata is maintaining are those within quotes.  
-di `countcity'- results in 5 because of the 4 spaces within city names (hence creating 5 "words").

HTH,

- Elan


-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Matthew White
Sent: Tuesday, April 10, 2012 13:56
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: macro compound double quotes

Hi Abhimanyu,

-help extended_fcn- notes:

word count string returns the number of words in string.  A token is a
word (characters separated by spaces) or set of words enclosed in
quotes.  Do not enclose string in double quotes because word count
will return 1.

Since in both cases the local was enclosed by double quotes, I'd
expect a result of 1. Using Stata 11.2 SE, I ran the following:

loc inclcities `"`"Accra"' `"Addis Ababa"' `"Almaty"' `"Antananarivo"'
`"Bamako"' `"Bangkok"' `"Beijing"' `"Bishkek"' `"Calcutta"'
`"Colombo"' `"Conakry"' `"Dakar"' `"Dar es Salaam"' `"Delhi"'
`"Dhaka"' `"Dushanbe"' `"Hanoi"' `"Harare"' `"Islamabad"' `"Jakarta"'
`"Johannesburg"' `"Kabul"' `"Kampala"' `"Karachi"' `"Kathmandu"'
`"Khartoum"' `"Kinshasa"' `"Lagos"' `"Lhasa"' `"Lomé"' `"Luanda"'
`"Lusaka"' `"Manila"' `"Maputo"' `"Mogadishu"' `"Mumbai"' `"Nairobi"'
`"Niamey"' `"Phnom Penh"' `"Rangoon"' `"Saigon"' `"Ulan Bator"'
`"Vientiane"' `"Yaounde"'"'

loc countcity : word count `inclcities'
di `countcity'

loc countcity : word count `"`inclcities'"'
di `countcity'

loc countcity : word count "`inclcities"
di `countcity'

Resulting in:

. loc inclcities `"`"Accra"' `"Addis Ababa"' `"Almaty"'
`"Antananarivo"' `"Bamako"' `"Bangkok"' `"Beijing"' `"Bishkek"'
`"Calcutta"' `"Colombo"' `"Conakry"' `"Dakar"' `"Dar es Salaam"'
>  `"Delhi"' `"Dhaka"' `"Dushanbe"' `"Hanoi"' `"Harare"' `"Islamabad"' `"Jakarta"' `"Johannesburg"' `"Kabul"' `"Kampala"' `"Karachi"' `"Kathmandu"' `"Khartoum"' `"Kinshasa"' `"Lagos"'
> `"Lhasa"' `"Lomé"' `"Luanda"' `"Lusaka"' `"Manila"' `"Maputo"' `"Mogadishu"' `"Mumbai"' `"Nairobi"' `"Niamey"' `"Phnom Penh"' `"Rangoon"' `"Saigon"' `"Ulan Bator"' `"Vientiane"' `"Ya
> ounde"'"'

.
. loc countcity : word count `inclcities'

. di `countcity'
44

.
. loc countcity : word count `"`inclcities'"'

. di `countcity'
5

.
. loc countcity : word count "`inclcities"

. di `countcity'
1

The first and third results are expected, but I'm confused by the
second. The following seems to show that Stata is coming up against
some kind of limit:

loc word1 : word 1 of `"`inclcities'"'
di `"`word1'"'

Another example. The following returns 4 when 2 is expected:

mata: st_local("x", "x" * 600 + " " + "x" * 600)
loc wc : word count `x'
di `wc'

All that said, none of this should be a problem for you as long as you
don't enclose `inclcities' by double quotes.

Best,
Matt

On Tue, Apr 10, 2012 at 1:12 PM, Abhimanyu Arora
<abhimanyu.arora1987@gmail.com> wrote:
> As a follow up I managed to find the right answer (by hit and trial)
>
> local temp1:list clean inclcities
> local countcity:word count `temp1'
> di `countcity'
>
> So it seems that unless the elements of a macro are minimally adorned,
> stata doesn't parse the spaces between the tokens (even if they are
> distinguished by compound double quotes)
>
> Cheers
> Abhimanyu
>
>
> On Tue, Apr 10, 2012 at 6:51 PM, Abhimanyu Arora
> <abhimanyu.arora1987@gmail.com> wrote:
>> Dear statalist
>> I have been trying to understand this phenomenon
>>
>> http://screencast.com/t/m6fGA8g9lxfX
>>
>> From what I have read in the manuals, the compound double quotes help
>> stata distinguish the tokens better when the macros themselves contain
>> quotes. So isn't the first syntax more appropriate?
>> But even then, the number returned when the second syntax is used
>> doesn't seem to be correct.
>>
>> Many thanks and best regards
>> Abhimanyu
>> *
>> *   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/



-- 
Matthew White
Data Coordinator
Innovations for Poverty Action
101 Whitney Avenue, New Haven, CT 06510 USA
+1 434-305-9861
www.poverty-action.org

*
*   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   |   Site index