Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: removing leading blanks
From
Abhimanyu Arora <[email protected]>
To
[email protected]
Subject
Re: st: removing leading blanks
Date
Mon, 2 Jan 2012 17:32:03 +0530
Just a small typo-district to be replaced by var1
On Mon, Jan 2, 2012 at 5:30 PM, Abhimanyu Arora
<[email protected]> wrote:
> Yes, Nick you sure hit the bull's eye of the problem, thanks!
> . gen problem = substr(district, 1, 4)
>
> . charlist problem
>
>
> . return list
>
> macros:
> r(chars) : " "
> r(sepchars) : " "
> r(ascii) : "32 160 "
>
>
> . replace var1 = subinstr(var1, char(32), "", .)
> (4992 real changes made)
>
> . replace var1 = subinstr(var1, char(160), "", .)
> (4992 real changes made)
>
> Problem solved, new year begins on a happy learning note!
> Cheers
> Abhimanyu
>
> On Sun, Jan 1, 2012 at 7:06 PM, Nick Cox <[email protected]> wrote:
>> As the help for -charlist- explains,
>>
>> " charlist may, for example, reveal the presence of problematic characters
>> in a string variable which "should be" numeric. It leaves behind a
>> terse character list in r(chars); a space-separated character list in
>> r(sepchars); and a space-separated numlist of ASCII codes in r(ascii).
>> Any may be used in a subsequent command. Sometimes copying and pasting
>> all or part of the displayed output to the command window may be the
>> most practical way to use the output, say as argument to destring,
>> ignore().
>>
>> Note in particular that many awkward characters may not print
>> comprehensibly or visibly in your Results window. To some extent, this
>> will depend on the font you choose. A particular pitfall is that
>> char(32) and char(160) appear identical and may be overlooked in any
>> case. The returned results showing ASCII codes are needed to solve many
>> of these difficulties."
>>
>> So, my guess is that -charlist- did not help you because you did not
>> look at its returned results, which are needed to distinguish char(9),
>> char(32) and char(160) -- or whatever char(#) looks like char(32) but
>> is not identical.
>>
>> It's thus not correct that -charlist- cannot distinguish non-blank
>> characters. That is much of its rationale.
>>
>> Nick
>>
>> On Sun, Jan 1, 2012 at 10:26 AM, Abhimanyu Arora
>> <[email protected]> wrote:
>>> Yes, I had to ultimately give up after spending hours thinking about
>>> the anomalous (buggy) nature of -ltrim- (even -charlist- did not pick
>>> out a non-blank character). -substr- solved the problem luckily
>>>
>>> Apparently there was a similar situation 5 years ago on the list
>>> http://www.stata.com/statalist/archive/2006-09/msg00269.html (but I am
>>> sure the spaces were leading in my case but just to be sure I tried
>>> both rtrim & trim with no changes)
>>>
>>>
>>> Best regards
>>> Abhimanyu
>>>
>>>
>>>
>>> On Sun, Jan 1, 2012 at 2:54 PM, Nick Cox <[email protected]> wrote:
>>>> OK, but in that case why did -ltrim()- fail to do what you wanted,
>>>> which is where you started?
>>>>
>>>> Nick
>>>>
>>>> On Sun, Jan 1, 2012 at 3:47 AM, Abhimanyu Arora
>>>> <[email protected]> wrote:
>>>>> Thanks Nick, but doesn't it imply that the blanks are actually blanks
>>>>> and not any other string characters?
>>>>>
>>>>> But anyway, I was able to solve the issue by using
>>>>> replace var1=substr(var1,5,.)
>>>>>
>>>>> Wish you and all members of the statalist a very happy new year!
>>>>>
>>>>> Best regards
>>>>> Abhimanyu
>>>>>
>>>>> On Sat, Dec 31, 2011 at 7:56 PM, Nick Cox <[email protected]> wrote:
>>>>>> I find the elements of your report difficult to reconcile. You imply
>>>>>> that -charlist- gives no output, which is not the case.
>>>>>>
>>>>>> Nick
>>>>>>
>>>>>> On Sat, Dec 31, 2011 at 1:42 PM, Abhimanyu Arora
>>>>>> <[email protected]> wrote:
>>>>>>> Hi Nick
>>>>>>> Thanks for the tip.
>>>>>>> I followed your suggestions but somehow still am unable to get things right.
>>>>>>> Here are the steps I followed together with the displayed output.
>>>>>>> Charlist rules out non-blank spaces, but-subinstr- with char(9) or "
>>>>>>> ", both do not yield the desired outcome.
>>>>>>>
>>>>>>> . count
>>>>>>> 10
>>>>>>>
>>>>>>> . gen problem=substr(var1,1,4)
>>>>>>>
>>>>>>> . charlist problem
>>>>>>>
>>>>>>>
>>>>>>> . replace var1 = subinstr(var1, char(9), "", .)
>>>>>>> (0 real changes made)
>>>>>>>
>>>>>>>
>>>>>>> Now,
>>>>>>>
>>>>>>> . replace var1 = subinstr(var1, " ", "",. )
>>>>>>> (10 real changes made)
>>>>>>>
>>>>>>> . gen problem2=substr(var1,1,3) *It seems the 10 changes are basically
>>>>>>> left trimming by 1 leading blank space*
>>>>>>>
>>>>>>> . charlist problem2
>>>>>>>
>>>>>>>
>>>>>>> . replace var1 = subinstr(var1, " ", "",. ) *Similar recursive steps
>>>>>>> as above does not seem to work out*
>>>>>>> (0 real changes made)
>>>>>>>
>>>>>>> Cheers
>>>>>>> Abhimanyu
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Dec 31, 2011 at 5:34 PM, Nick Cox <[email protected]> wrote:
>>>>>>>> What you describe as blanks may be some other character(s).
>>>>>>>>
>>>>>>>> -charlist- (SSC) is a utility which may help.
>>>>>>>>
>>>>>>>> gen problem = substr(var1, 1, 4)
>>>>>>>>
>>>>>>>> charlist problem
>>>>>>>>
>>>>>>>> After finding out which characters are present, use code such as
>>>>>>>>
>>>>>>>> replace var1 = subinstr(var1, char(9), "", .)
>>>>>>>>
>>>>>>>> where 9 is a placeholder for the argument you need. (char(9) is a tab,
>>>>>>>> and the characters might just be a tab.)
>>>>>>>>
>>>>>>>> Nick
>>>>>>>>
>>>>>>>> On Sat, Dec 31, 2011 at 11:54 AM, Abhimanyu Arora
>>>>>>>> <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> All values of a string variable, var1, have 4 blank spaces in the beginning.
>>>>>>>>> However, when I type in the command
>>>>>>>>> -replace var1=ltrim(var1)- ,
>>>>>>>>> the output displays "0 real changes made" (and needless to say,
>>>>>>>>> things remain as they were to start with)
>>>>>>>>> Would be really great if this puzzling issue is sorted out.
>>
>> *
>> * 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/