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

# Re: st: Numbers with decimals and -float- command

 From Joseph Monte To statalist@hsphsun2.harvard.edu Subject Re: st: Numbers with decimals and -float- command Date Tue, 8 Nov 2011 20:16:42 +0000

```Nick,

Thanks for the suggestion and sorry for a) lack of clarity and b) the
misquote (Jeremy). I ran your suggested code and got the following.
Why is totsh1 not equal to totsh2?

. assert  totsh1 == totsh2 in 1870
assertion is false
r(9);

.
. di %21x (totsh1[1870] - totsh2[1870])
+1.0000000000000X-016

Note:- totsh1 = primsh1 + secsh1. Similarly, totsh2 = primsh2 + secsh2

. list primsh1 secsh1 totsh1 primsh2 secsh2 totsh2 in 1870

+-------------------------------------------------------+
| primsh1   secsh1   totsh1   primsh2   secsh2   totsh2 |
|-------------------------------------------------------|
1870. |       2     .325    2.325      2.09     .235    2.325 |
+-------------------------------------------------------+

As a further test, I recreated totsh1 & totsh2 naming them x and y
respectively. But, the results are the same.

. gen x=primsh1+secsh1
(4268 missing values generated)

. gen y=primsh2+secsh2
(4268 missing values generated)

. list x y in 1870

+---------------+
|     x       y |
|---------------|
1870. | 2.325   2.325 |
+---------------+

. assert  x == y in 1870
assertion is false
r(9);

.
.
.
. di %21x (x[1870] - y[1870])
+1.0000000000000X-016

Thanks,

Joe

On Tue, Nov 8, 2011 at 7:26 PM, Nick Cox <njcoxstata@gmail.com> wrote:
> I found this difficult to follow. It's not clear that we need to
> understand "upwards", "downwards" and "sideways", as the key question
> is whether or not certain values are equal.
>
> First note that the FAQ you cite is due to Jeremy Wernow.
>
> You are puzzled why your -if- condition ignores e.g. observation 1870
> in which you have
>
>  1870.     2.325      2.325      2.525          .        .      2.525
>
> and so on the face of should we be because (e.g.) the first and second
> values look identical. But that is just a matter of display format.
>
> As those variables are of the same type I would just look directly at
> those values
>
> assert  totsh1 == totsh2 in 1870
> di %21x (totsh1[1870] - totsh2[1870])
>
> I don't see that the -float()- function will be illuminating here.
>
> Nick
>
> On Mon, Nov 7, 2011 at 7:47 PM, Joseph Monte <hmjc66@gmail.com> wrote:
>
>> The output below should contain only observations where there are both
>> upwards and downwards (or vice versa) movements in "totsh" (from
>> "totsh1" through "totsho~r"). Sideways movements are allowed. As an
>> example, obs 1157 has a downward movement from "totsh1" to "totsh2"
>> then upward to "totsh3" and then sideways to "totsho~r", which is
>> fine. "obs" is the number of "totsh*" observations in each row.
>>
>> However, notice observations 1870 (where the path is upward and NOT
>> downward) & 3275 (where the path is downward and NOT upward). These
>> observations should not be in type 3 but in type 1 (which captures
>> upward (and sideways) movements) and type 2 (which captures downward
>> (and sideways) movements respectively) - these are not shown for
>> brevity. On further investigation, I expected the issue to be resolved
>> if I used the -float- command from Nick's FAQ.
>>
>> http://www.stata.com/support/faqs/data/float.html
>>
>> However, as shown below, the -float- command does not seem to solve
>> the problem. In obs 1870, totsh1 & totsh2 do not seem to be equal even
>> though both are 2.325. Same issue for obs 3275.
>>
>>
>> . list totsh1 totsh2 totsh3 totsh4 totsh5 totshoffer obs type if type==3
>>
>>      +----------------------------------------------------------------------------+
>>      |   totsh1     totsh2     totsh3     totsh4   totsh5   totsho~r
>>  obs   type |
>>      |----------------------------------------------------------------------------|
>> 1157. |      3.5   3.483289        3.5          .        .        3.5
>>   4      3 |
>> 1362. | 1.615159   1.588584          .          .        .          2
>>   3      3 |
>> 1543. |      1.5          2          .          .        .       1.75
>>   3      3 |
>> 1691. |       20         25         21         15        .         15
>>   5      3 |
>> 1762. |     1.75        1.9          .          .        .      1.865
>>   3      3 |
>>      |----------------------------------------------------------------------------|
>> 1764. | 1.785918    1.68277          .          .        .        2.4
>>   3      3 |
>> 1768. |     2.25          2          .          .        .   2.666667
>>   3      3 |
>> 1771. |      2.5        2.5          3          .        .        2.9
>>   4      3 |
>> 1774. |      5.5          4        4.7       4.65     4.65       4.65
>>   6      3 |
>> 1870. |    2.325      2.325      2.525          .        .      2.525
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 2115. |    2.475       2.14        2.4          .        .        2.4
>>   4      3 |
>> 2256. |      2.1       1.85          .          .        .        2.1
>>   3      3 |
>> 2514. |      2.5       2.75          .          .        .        2.4
>>   3      3 |
>> 2524. |        4        2.7        2.2          2        .        2.2
>>   5      3 |
>> 2598. |      2.5          2       2.35          .        .        2.5
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 2606. |      3.7       2.75          .          .        .       2.85
>>   3      3 |
>> 2645. |      3.4        2.3        3.3          .        .          3
>>   4      3 |
>> 2657. |      2.3        2.5        2.1       1.65        .       1.65
>>   5      3 |
>> 2719. |      2.5   2.949862          .          .        .        2.5
>>   3      3 |
>> 2737. |        2        1.5          .          .        .        1.7
>>   3      3 |
>>      |----------------------------------------------------------------------------|
>> 2760. |        1        1.2         .9          .        .         .9
>>   4      3 |
>> 2782. |     2.25          2          .          .        .        2.5
>>   3      3 |
>> 2838. |    5.883          4          .          .        .        4.8
>>   3      3 |
>> 2912. |        2      2.455        1.8          .        .        1.8
>>   4      3 |
>> 2962. |     1.15          1       1.05          .        .       1.05
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 2980. |      2.7          2        2.3          .        .        2.3
>>   4      3 |
>> 2987. |        2        1.4        1.6          .        .       1.92
>>   4      3 |
>> 3027. |     5.45       5.55       5.65      5.553        .      5.553
>>   5      3 |
>> 3096. |      1.8       1.85       1.25       1.35        .       1.35
>>   5      3 |
>> 3132. |      1.5          1       1.25          .        .       1.25
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 3188. |      2.3        2.7          .          .        .        2.3
>>   3      3 |
>> 3251. |     17.2          6          .          .        .          7
>>   3      3 |
>> 3275. |      6.8        6.8          5          .        .          5
>>   4      3 |
>> 3286. |      1.8        1.4        1.5          .        .        1.5
>>   4      3 |
>> 3306. |        6          4          5          .        .          5
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 3488. |      2.5        2.2        2.5          .        .        2.5
>>   4      3 |
>> 3519. |    16.25      13.25       13.3       14.9        .       14.9
>>   5      3 |
>> 3566. |   12.575       10.5          5     4.0625        .      4.665
>>   5      3 |
>> 3667. |      3.5          4        3.6          .        .        3.6
>>   4      3 |
>> 3877. |     6.25        5.5        6.5          .        .        6.5
>>   4      3 |
>>      |----------------------------------------------------------------------------|
>> 3919. |        8       11.5        8.5          .        .        8.5
>>   4      3 |
>> 3944. |      7.5        4.7          .          .        .          5
>>   3      3 |
>> 3954. |        6          5          .          .        .       6.44
>>   3      3 |
>> 4002. |     10.3       14.6         10          .        .         10
>>   4      3 |
>> 4014. |        5       4.95   5.030305   5.045972        .   5.295972
>>   5      3 |
>>      +----------------------------------------------------------------------------+
>>
>> . list totsh1 totsh2 type if float(totsh1)==float(totsh2) & totsh1!=. & type==3
>>
>>      +------------------------+
>>      | totsh1   totsh2   type |
>>      |------------------------|
>> 1771. |    2.5      2.5      3 |
>>      +------------------------+
>>
>> . des totsh1 totsh2
>>
>>              storage  display     value
>> variable name   type   format      label      variable label
>> ---------------------------------------------------------------------------------------------------------------------------------------------
>> totsh1          float  %9.0g
>> totsh2          float  %9.0g
>>
>>
>> I would appreciate any help on the issue. I am using Stata 12.
>
> *
> *   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/
```