Austin Nichols wrote:
> Nikos--
> I believe this is an artifact of evaluating the returned local for the
> -display- extended function. The following demonstrates:
>
> forval i = 65536/65537 {
> inbase 2 `i'
> local which : di %020.0f r(base)
> local which : subinstr local which "1" "1", all count(local n1)
> di "evaluated r(base): " %020.0f `r(base)'
> di "unevaluated r(base): " %020.0f r(base)
> di "which: "`which'
> di "n1: " `n1'
> }
>
> So if Nick replaces the line
> local which : di %0`n'.0f `r(base)'
> with
> local which : di %0`n'.0f r(base)
> in tuples.ado I think it will work for you. In the meantime, make the
> change yourself and save as mytuples.ado on your system.
>
> On 2/21/07, Nikolaos A. Patsopoulos <[email protected]> wrote:
>
>> Hi all,
>>
>> I'm working currently in a project implementing a part of Nick Cox's
>> tuples program and I bumped into sth weird.
>> For values of local which with more than 17 digits subinstr fails to
>> count all occurences of number "1". Below is a small code representative
>> of the problem:
>>
>> forval i = 65536/65537 {
>> inbase 2 `i'
>> local which : di %020.0f `r(base)'
>> local which : subinstr local which "1" "1", ///
>> all count(local n1)
>> di "r(base): " `r(base)'
>> di "which: "`which'
>> di "n1: " `n1'
>> }
>
>
That works just fine, however following the previous code are the lines:
local char = substr("`which'",`j',1)
qui replace _in=0 in `j' if `char'==1
and that returns erro if char=has no value, e.g.
if which = "1" than char is left blank
. local char = substr("1",2,1)
. di `char'
blank
. local char = substr("101",2,1)
. di `char'
0
Nikos