Thursday, August 30, 2007

Parables of the River - The end of Type 2 Diabetes?


The end of Type 2 Diabetes?

I REALLY like this story forwarded by LG (below the video). Here is ideo (Pablo & Bruno).


Parables of the River
I have been working on introductions to learning modules for a community organizing course I will be teaching online in the Fall. One of the things I wanted to include was what some community organizers call the “Parable of the River” (or sometimes a waterfall) that is often attributed to Saul Alinsky. I was searching across the Internet to find a good representation of the parable and found a wide range of different versions. (To avoid writing introductions, I seem to have ended up writing this post . . . .) Interestingly, it seems like there are versions of this parable with a different perspective than that used by community organizers. And this different version seems somewhat more prevalent among those oriented towards more traditional social service.

First an example of a “community organizing” version of the parable:
    Once upon a time there was a small village on the edge of a river. The people there were good and life in the village was good. One day a villager noticed a baby floating down the river. The villager quickly swam out to save the baby from drowning. The next day this same villager noticed two babies in the river. He called for help, and both babies were rescued from the swift waters. And the following day four babies were seen caught in the turbulent current. And then eight, then more, and still more!
    The villagers organized themselves quickly, setting up watchtowers and training teams of swimmers who could resist the swift waters and rescue babies. Rescue squads were soon working 24 hours a day. And each day the number of helpless babies floating down the river increased. The villagers organized themselves efficiently. The rescue squads were now snatching many children each day. While not all the babies, now very numerous, could be saved, the villagers felt they were doing well to save as many as they could each day. Indeed, the village priest blessed them in their good work. And life in the village continued on that basis.

    One day, however, someone raised the question, "But where are all these babies coming from? Let’s organize a team to head upstream to find out who’s throwing all of these babies into the river in the first place!"
Now a different version of this parable:
    While walking along the banks of a river, a passerby notices that someone in the water is drowning. After pulling the person ashore, the rescuer notices another person in the river in need of help. Before long, the river is filled with drowning people, and more rescuers are required to assist the initial rescuer. Unfortunately, some people are not saved, and some victims fall back into the river after they have been pulled ashore. At this time, one of the rescuers starts walking upstream

    “Where are you going?” the other rescuers ask, disconcerted. The upstream rescuer replies, “I’m going upstream to see why so many people keep falling into the river.” As it turns out, the bridge leading across the river up- stream has a hole through which people are falling. The upstream rescuer realizes that fixing the hole in the bridge will prevent many people from ever falling into the river in the first place.

In both parables, the key issue is that those trying to rescue the drowning people are making an error by focusing on the current emergency rather than on what is causing the emergency. As a result, they have no hope of actually solving the problem.

A key distinction between them is that in the first parable an agent is assumed to be causing the babies to fall in the river. In the second the problem is simply technical, with no agent attached. The bridge “has” a hole (note the passive voice).

This tendency to obscure the agents behind oppression and social harm may be a key difference between what I would term a “community organizing” approach and more familiar “social service” and “social science” approaches. From social service and social science perspectives there simply are these problems that need to be solved. The highest level of action is identifying and addressing the (usually impersonal) causes of shared problems.
Importantly, this approach generally obscures the activity of the agents who are perpetuating social challenges through their action or inaction.

Perhaps some of the tendency to avoid seeking out responsible agents is a result of the enormous challenges involved in identifying someone or some institution that one can definitively say is causing a particular problem. But maybe part of the problem is this focus on “causes” in the first place. In fact, the “cause” question can become a pretty complex, ultimately unsolveable existential challenge with no clear solution. Is the cause of pollution from a coal plant the owners of the plant, or bad government standards, or perverse incentives that make clean production unprofitable, or any of an innumerable set of other influences? What is the “cause” of the fact that so many poor kids have difficulty reading?
In my experience, as social scientists, most educational scholars tend to draw from the second version of this parable rather than the first. There “are” problems and we need technical solutions to solve them. In fact, to the many scholars who tend to avoid thinking about “causes,” even the limited insights of the second parable seem like a revelation.
In contrast, when organizers are looking for targets (see earlier post) they aren’t really worried about who or what is the “cause” of a problem. Instead, they try to figure out who can or should be made responsible for the problem now that we have it. In other words, the challenge for a community organizer is to identify the agent that can be induced to solve the problem, regardless of the vast chain of influences that produced it. The aim is to build a coherent link between specific agents and a specific social problem, and the substance of such a link can vary widely.

From an organizing perspective, many people and institutions have resources that are not fairly shared, and the aim is to find ways to force some subset of these agents to use their resources in more equitable ways.

To simplify the distinction I am making, here, one might say that social scientists and social service people tend to focus on “what” caused a problem and “how” to solve the problem, while organizers focus on “who” can solve the problem. And in many cases, answering “what” and “how” questions seem like pre-organizing issues. Sometimes, of course, getting people to figure out the answers to these questions themselves in a collective manner can be tools for engaging, educating, and organizing them, but often this does not seem to be the case.

One limitation of a focus on causes and solutions without focusing on agents is that each agent will be linked to different resources and different possible actions. In other words, different agents imply different solutions. Perhaps more problematically, failing to focus on the identification of realistic agents of change often creates an enormous unbridgeable gulf between theoretical solutions and actual solutions.

Here is a somewhat relevant example that indicates some of the differences between the social science approach and the organizing approach: We have been working on the beginnings of an effort to transform dental care for low-income urban children. For a range of reasons, we want to fight for a school-based dental treatment program. And we have identified an agent and avenue of change—the state health department and the state health insurance program. But there is no clear established “blue chip” model or “solution” to fight for. So we have stepped back, and I have been working with the state dental school and local district officials to get a pilot school-based services project funded. A local “proof of concept” effort would provide the basis for a program blueprint that we could then fight for on a state level. To a large extent, however, this social science investigation work is “pre-organizing.”

Two final observations:
First, there is a key problem with this parable in both of its versions. It represents those who are harmed as powerless victims, often babies. But people are rarely entirely powerless, and organizers never approach people as if they were powerless or babies. It seems odd that this central parable used by many organizers contains such a disempowering metaphor at its core.


Second, it is interesting to note that in a version that Stanley Cohen says he got from Alinsky, “a fisherman is rescuing drowning people from a river. Finally, he leaves the next body to float by while he sets off upstream ‘to find out who the hell is pushing these poor folks into the water.’ According to Cohen, Alinsky used this story to make a further ethical point: ‘While the fisherman was so busy running along the bank to find the ultimate source of the problem, who was going to help those poor wretches who continued to float down the river?’”


Thursday, August 16, 2007

Monday, August 13, 2007

Endocrine Regulation of Energy Metabolism by the Skeleton Cell -- Lee et al.

Endocrine Regulation of Energy Metabolism by the Skeleton

http://www.cell.com/content/article/fulltext?uid=PIIS0092867407007015

The regulation of bone remodeling by an adipocyte-derived hormone implies that bone may exert a feedback control of energy homeostasis. To test this hypothesis we looked for genes expressed in osteoblasts, encoding signaling molecules and affecting energy metabolism. We show here that mice lacking the protein tyrosine phosphatase OST-PTP are hypoglycemic and are protected from obesity and glucose intolerance because of an increase in β-cell proliferation, insulin secretion, and insulin sensitivity. In contrast, mice lacking the osteoblast-secreted molecule osteocalcin display decreased β-cell proliferation, glucose intolerance, and insulin resistance. Removing one Osteocalcin allele from OST-PTP-deficient mice corrects their metabolic phenotype. Ex vivo, osteocalcin can stimulate CyclinD1 and Insulin expression in β-cells and Adiponectin, an insulin-sensitizing adipokine, in adipocytes; in vivo osteocalcin can improve glucose tolerance. By revealing that the skeleton exerts an endocrine regulation of sugar homeostasis this study expands the biological importance of this organ and our understanding of energy metabolism.

Monday, August 06, 2007

INDIANAPOLIS – All healthy adults ages 18 to 65 years need moderate-intensity aerobic physical activity for at least 30 minutes on five days each week or vigorous-intensity aerobic physical activity for at least 20 minutes on three days each week, according to updated physical activity guidelines released today by the American College of Sports Medicine (ACSM) and the American Heart Association (AHA).

Further, adults will benefit from performing activities that maintain or increase muscular strength and endurance for at least two days each week. It is recommended that 8-10 exercises using the major muscle groups be performed on two non-consecutive days. To maximize strength development, a resistance (weight) should be used for 8-12 repetitions of each exercise resulting in willful fatigue.

1. Moderate-intensity physical activity has been clarified.

2. Vigorous-intensity physical activity has been explicitly incorporated into the recommendation.

3. Specified: Moderate- and vigorous-intensity activities are complementary in producing health benefits, and a variety of activities can be combined to meet the recommendation.

4. Specified: Aerobic activity is needed in addition to routine activities of daily life.

5. More is better.

6. Short bouts of exercise are OK.

7. A muscle-strengthening recommendation is now included.

8. Wording has been clarified.

For detail click here

Friday, August 03, 2007

How to test whether the change among surveys in one group is equal to the change in the other groups?

1. Scenery

We have a table below:

NHES

(S1)

N I

(S2)

N II

(S3)

N III

(S4)

N IV

(S5)

Change

(C)

BMI Group

High Cholesterol (%> 240 mg/dl)

< style=""> (G1)

27.1

22.3

22.1

13.8

15.2

-11.9 (C1)

25.0 – (G2)

39.2

33.1

31.2

23.3

18.7

-20.5 (C2)

> 30 (G3)

38.9

33.1

31.5

23.0

17.9

-21.0 (C3)

Age and sex-adjusted trends in CVD risk factors, by level of obesity and survey year in the

We want to know: Ho: C1 = C3.

2. Algorithm Solution

Recall:

Y= α*(S5, G1) + β1*(S1) + β2*(S2) + β3*(S3) + β4*(S4) + β5*(G2) + β6*(G3)

+ β7*(S1, G2) + β8* (S1, G3) + β9*(S2, G2) + β10*(S2, G3) + β11*(S3, G2)

+ β12*(S3, G3) + β13*(S3, G2) + β14*(S3, G3)

And: Prevalence of high cholesterol in NHES (S1) among persons with normal BMI (G1)

[S1-G1] = α + β1 = 27.1, and

[S5-G1] = α = 15.2, then

C1 = [S5-G1] - [S1-G1] = 15.2 – 27.1 = -11.9

Also:

[S1-G3] = α + β1 + β6 + β8 = 38.9, and

[S5-G3] = α + β6 = 17.9, then

C3 = [S5-G3] - [S1-G3] = -21.0

So:

When we test whether C1 = C3, we are going to test:

α - (α + β1) = (α + β6) – (α + β1 + β6 + β8),

i.e. β8 = 0

Same for others:

To test C1 = C2, we are going to test, β7 = 0

3. Implementation

Using PROC RLOGIST:

proc rlogist data= all;

  nest survey3 strata3 psu3/psulev=3 MISSUNIT;

  weight mecwgt3;

  subpopn age >19;

  subgroup bmigrp agegrp sex survey3 WHITE BMIADHOC;

  levels 3 3 2 5 2 2;

  model High_chol = bmigrp agegrp sex survey3 bmigrp*survey3;

  reflevel survey3 =5 agegrp =1 bmigrp=1;

  pred_eff bmigrp=(1,0,0)*survey3=(1,0,0,0,-1) /name="Survey: first versus last in BMI<25";

  pred_eff bmigrp=(0,1,0)*survey3=(1,0,0,0,-1)/name="Survey: first versus last in 25<BMI<30";

  pred_eff bmigrp=(0,0,1)*survey3=(1,0,0,0,-1)/name="Survey: first versus last in BMI>30";

  PREDMARG BMIGRP SURVEY3 BMIGRP*SURVEY3;

  PRINT BETA P_BETA PREDMRG SEPRDMRG P_PMCON PRMGCON SEPMCON

  /PREDMRGFMT=f7.3 PRMGCONFMT=F7.3 SEPMCONFMT=F7.3;

RUN;

SUDAAN will give us these beta and p value for beta:

-------------------------------

variable beta p value

-------------------------------

BMIGRP,

BY NHES & NHANES

1, 1 0.00 .

1, 2 0.00 .

1, 3 0.00 .

1, 4 0.00 .

1, 5 0.00 .

2, 1 0.33 0.0483 <- b=""> ß7

2, 2 0.32 0.0414

2, 3 0.24 0.1284

2, 4 0.41 0.0130

2, 5 0.00 .

3, 1 0.37 0.0181 <- b=""> ß8

3, 2 0.38 0.0156

3, 3 0.30 0.0350

3, 4 0.44 0.0021

3, 5 0.00 .

----------------------------------


Life course epidemiology
by Yoav Ben-Shlomo

This edition of the International Journal of Epidemiology has four papers and accompanying commentaries that can be conveniently clustered under the heading of life course epidemiology. In the concluding chapter of ‘A life course approach to chronic disease epidemiology’, Diana Kuh and I raised several emerging and common themes that we felt needed to be addressed by future research. These were (i) understanding heterogeneity, (ii) going beyond repeat measures to understand trajectories, (iii) the role of accelerated postnatal weight and height gain and (iv) the use of life cohort cohorts and less conventional designs. All of these topics are addressed to some degree by these publications. ...
for full text article click here

Wednesday, July 25, 2007

Example of Application of GIS on Public Health

Last week, we had 7 people attended the training class of spatial analysis. Seems a lot of people are interested in this area. Attached please find a 4 years old project I involved about 'Temporal and spatial relationship of ozone and asthma'. One thing amazed me by GIS is geostatistics (maybe only thing, sorry), which can convert values among point, line, and area.
http://gis2.esri.com/library/userconf/proc03/p0911.pdf

Wednesday, July 18, 2007

How to send and receive large files through the Internet


There are several websites can send large files to our friends. One of them is TransferBIGFiles.com, a free service for sending and receiving large files through the Internet. No registration is needed to use the service. View a simple diagram of how the service works.

After you upload the file (up to 1GB), the recipient gets an email with a link to download the file. The file is good for 5 days or 20 downloads, whichever comes first. The optional settings let you add a note to the email, password protect the file and get an email confirmation of the download.

The folks behind the site share their experience in building TransferBigFiles.com in one weekend. Check out the statistics showing the number of transfers, file size, bandwidth and other interesting stats.

sasCommunity.org

http://sascommunity.org/wiki/Main_Page
User feedback to sasCommunity.org continues to be very positive (over 31,000 hits on the main page; over 1200 users and growing!). One of the important features of sasCommunity.org is the ability to organize articles into categories. Categories provide a great way to make sure your pages are found by interested sasCommunity visitors and provide an easy way to navigate between related articles

Tuesday, July 17, 2007

How to Read the New Recommendation Statement

Current Processes of the U.S. Preventive Services Task Force: Refining Evidence-Based Recommendation Development
by Janelle Guirguis-Blake, Ned Calonge, Therese Miller, Albert Siu, Steven Teutsch, Evelyn Whitlock for the U.S. Preventive Services Task Force. Ann Intern Med 2007;147 117-122 Open Access

How to Read the New Recommendation Statement: Methods Update from the U.S.
Preventive Services Task Force

by Mary B. Barton, Therese Miller, Tracy Wolff, Diana Petitti, Michael LeFevre, George Sawaya, Barbara Yawn, Janelle Guirguis-Blake, Ned Calonge, Russell Harris for the U.S. Preventive Services Task Force. Ann Intern Med 2007;147 123-127 Open Access

Monday, July 16, 2007

Dr. Richard P. Feynman (1918 -1988)


Nobelist Physicist, teacher, storyteller, bongo player
the hero of physics geeks everywhere!

http://amasci.com/feynman.html

"Science is the belief in the ignorance of the experts” - Richard P. Feynman
More definition of science: http://www.gly.uga.edu/railsback/1122sciencedefns.html

Wednesday, July 11, 2007

Water Will Rock You (We'll Rock You song)

Tuesday, July 10, 2007

Statistical Graphics Using ODS

http://support.sas.com/rnd/app/da/stat/odsgraph/

Graphics are an invaluable tool for data analysis, where one image can summarize pages of output. Graphics reveal patterns, point out differences, and provoke meaningful question about your data. SAS 9.1 now includes an experimental extension to the Output Delivery System (ODS) that provides high-quality graphics along with tabular output for many statistical procedures.

ODS Graphics gives you convenient access to commonly used graphics for a particular analysis. You no longer need to export your results to other graphical tools. With simple ODS commands and procedure options, you can generate the boxplots, scattergrams, and residual plots you need as well as several dozen other types of graphical displays. You can choose from several styles, or you can customize your graphics. You can direct the graphics to destinations such as HTML, RTF, and Postscript.

Wednesday, June 20, 2007

How to DYI a passport photo

How to DYI a passport photo

Freeware:

Friday, June 15, 2007

Guidelines on diabetes, pre-diabetes, and cardiovascular diseases

This link is to a 72-page review from a distinguished European group of authors.

It offers about everything you need to review clinical care of adult diabetic patients, at least insofar as their CV disease goes. Expect to find dozens of systematic tables, several good graphics, and 711
citations!


Friday, June 08, 2007

Physical activity and health Even low intensity exercise such as walking is associated with better health Evidence that physical activity improves health is convincing,1 but we lack knowledge about how to increase physical activity in individuals and populations. Taking part in sport may improve health, but sport is only taken up by a small proportion of the adult population, and mainly by the better educated. In this week's BMJ, a systematic review by Ogilvie and colleagues assesses the effect of interventions to improve walking on how much people walk, physical activity, fitness, disease risk factors, and wellbeing.2 It found that interventions tailored to people's needs, which targeted the most sedentary or those motivated to change, can increase walking by up to 30-60 minutes each week. Few studies included in the review assessed clinical benefits from the increased walking, and this remains to be shown in randomised controlled trials.

So what is the evidence so far on the effects of interventions on other types of physical activity? A recent Cochrane review of randomised controlled trials found that trials promoting physical activity in general significantly increased self reported physical activity (standardised mean increase of 0.31, 95% confidence interval 0.12 to 0.50), and fitness (0.40, 0.0.9 to 0.70).3 The review by Ogilvie and colleagues also included non-randomised studies, which, although considered weaker forms of evidence, are necessary to assess the effect of population level interventions such as bike lanes, walking paths, and recreational areas.

One non-randomised community intervention in Odense, Denmark, promoted bicycling through many initiatives and increased the number of bicycle trips by more than 20% over five years.4 At the same time, the number of accidents involving cyclists was 20% lower than in the rest of the country.

Another study found that children who cycled to school were 8% more fit than children who used other modes of transport including walking.5 It concluded that a 10-15 minute session of cycling twice a day would be enough to increase aerobic fitness in children.5

Observational studies have consistently shown that children who walk or cycle to school engage in more physical activity (other than the travel activity) than those who travel by other means.6 7 This extra activity may reflect selection (children who are generally more active choose active transport) or it may be that children who are encouraged to take up active transport go on to engage in other activities. However, because of the lack of cycle lanes in many countries it may be difficult to promote increased cycling for safety reasons.

A weakness in many of the trials of walking interventions is the lack of assessment of health gains; however, epidemiological studies suggest that health benefits of active transport are substantial. The nurses health study found that women who increased both walking distance and speed had a lower risk of cardiovascular disease, type 2 diabetes , and all cause mortality.8 9 The risk in the upper quintile of walking was around half that seen in the sedentary group. Similarly, another study found a 30% lower mortality rate in participants who cycled to work than in non-cyclists after adjusting for general physical activity level, socioeconomic background, and smoking.

Ogilvie and colleagues' study shows that interventions can increase the amount of walking. It has not yet been proved that the lower rates of disease and mortality seen in people who walk is caused by walking itself, but even this low intensity type of exercise probably improves metabolic control and other health parameters. The challenge now is to make politicians work for an environment that promotes walking, and to call on doctors to encourage patients to walk, especially those with disorders such as hypertension, metabolic syndrome, or raised fasting insulin.


Lars Bo Andersen, professor Norwegian School of Sport Sciences, Department of Sports Medicine, Box 4014, 0806, Oslo, Norway

Wednesday, April 25, 2007

Ggobi: the data visualization system.

http://www.ggobi.org/

GGobi is an open source visualization program for exploring high-dimensional data. It provides highly dynamic and interactive graphics such as tours, as well as familiar graphics such as the scatterplot, barchart and parallel coordinates plots. Plots are interactive and linked with brushing and identification.

Friday, April 20, 2007

Wednesday, March 28, 2007

A bug of SAS?

A bug of SAS?
We may have a problem on create A1c categories by using NHANES III data, which is a discrepancy between multilevel categories and two-level categories, then I figured out 'ROUND()' function can fix this kind discrepancy. However, this issue is still haunting our a lot. After I looked into more, I found the SAS did not pick up 5.2 into the '1' group, when I use 'GHP >= 5.2' (see codes and output below).
There is no similar problem with NHANES 99-04. The differences between NHANES III and NHANES 99 are: 1) NHANES III dataset is a SAS version 6 dataset; 2) GHP of NHANES III has been formatted as F6.1.
     
LIBNAME NHANES3 V6 'Q:\epistat\datasets\NHANES\ORIGINAL\NHANES3\';
DATA N3;
  SET NHANES3.LABNEW (KEEP=GHP);       * This is a SAS v6 dataset;
    IF . LT GHP LT 7777;               * GHP is in a F6.1 format;
    GHP2=ROUND(GHP,0.1);               * What is 'ROUND()' doing here?;
        IF GHP >= 5.2 THEN GHPGRP1=1 ELSE GHPGRP1=2;
        IF GHP > 5.19 THEN GHPGRP2=1 ELSE GHPGRP2=2;
    IF GHP2>=5.2 THEN GHPGRP3=1 ELSE GHPGRP3=2;
        LABEL GHPGRP1='ORIGINAL GHP VALUE, CUTPOINT 5.2'
              GHPGRP2='ORIGINAL GHP VALUE, CUTPOINT 5.19'
                  GHPGRP3='ROUNDED GHP VALUE, CUTPOINT 5.2';
RUN;
PROC FREQ DATA=N3;
  TABLES GHPGRP1 GHPGRP2 GHPGRP3 GHPGRP1*GHPGRP3; RUN;
============ OUTPUT ============
                                                                                             379
The FREQ Procedure
              ORIGINAL GHP VALUE, CUTPOINT 5.2
                                    Cumulative    Cumulative
GHPGRP1    Frequency     Percent     Frequency      Percent
------------------------------------------------------------
      1       11535       49.14         11535        49.14
      2       11941       50.86         23476       100.00
 
              ORIGINAL GHP VALUE, CUTPOINT 5.19
                                    Cumulative    Cumulative
GHPGRP2    Frequency     Percent     Frequency      Percent
------------------------------------------------------------
      1       13463       57.35         13463        57.35
      2       10013       42.65         23476       100.00
 
               ROUNDED GHP VALUE, CUTPOINT 5.2
                                    Cumulative    Cumulative
GHPGRP3    Frequency     Percent     Frequency      Percent
------------------------------------------------------------
      1       13463       57.35         13463        57.35
      2       10013       42.65         23476       100.00
 
Table of GHPGRP1 by GHPGRP3
GHPGRP1(ORIGINAL GHP VALUE, CUTPOINT 5.2)
          GHPGRP3(ROUNDED GHP VALUE, CUTPOINT 5.2)
Frequency|
Percent  |
Row Pct  |
Col Pct  |       1|       2|  Total
---------+--------+--------+
       1 |  11535 |      0 |  11535
         |  49.14 |   0.00 |  49.14
         | 100.00 |   0.00 |
         |  85.68 |   0.00 |
---------+--------+--------+
       2 |   1928 |  10013 |  11941
         |   8.21 |  42.65 |  50.86
         |  16.15 |  83.85 |
         |  14.32 | 100.00 |
---------+--------+--------+
Total       13463    10013    23476
            57.35    42.65   100.00
=========================================
Thank you all. J and I discussed this underlying issue yesterday as well. I could not find any exact 5.2 of GHP value. I don't think NCHS inputted this kind of GHP value.
=========================================
I tried changing the following statement,  and GHPGRP2 was assigned a value of 2 in record 39.  Removing one of the decimal places resulted in a value of 1.
IF GHP >= 5.1999999999999999 THEN GHPGRP2=1ELSE GHPGRP2=2;
I tried changing the format and unformatting GHP, but I could only get it to display 5.2 in record 39.  Apparently, the value is not exactly 5.2, but the precision is so deep that it cannot be displayed.
=========================================
Thank you B and D. We are pinpointed the issue. I re-run my codes and get outputs below. Usually SAS gives a little bit more from what we see. However, this time (NHANES III) SAS gives a little bit less from what we see. Keep tune and be aware. Using round() if your want fix this issue now.
LIBNAME NHANES3 V6 'Q:\epistat\datasets\NHANES\ORIGINAL\NHANES3\';
DATA N3;
  SET NHANES3.LABNEW (KEEP=GHP);       * This is a SAS v6 dataset;
    IF ROUND(GHP,.1) EQ 5.2;
        DIFF_GHP_FROM_5POINT2=GHP-5.2;
        GHP_GE_5POINT2=(GHP GE 5.2);
        GHP_GE_5POINT19=(GHP GE 5.19);
RUN;
TITLE 'OUTPUT OF NHANES III';
PROC PRINT DATA=N3 (OBS=5); FORMAT GHP DIFF_GHP_FROM_5POINT2 F32.31; RUN;
data two;
   input a b @@;
   c=b*0.1;
   ca_diff=c-a;
   c_ge_point3=(a ge 0.3);
   c_le_point3=(c le 0.3);
cards;
0.1 1 0.2 2 0.3 3 0.4 4 0.5 5
;
run;
title 'output of testing dataset';
proc print data=two; format c ca_diff f32.31; run;
title;run;
 
OUTPUT OF NHANES III
                                                                              GHP_GE_    GHP_GE_
 Obs                                GHP              DIFF_GHP_FROM_5POINT2   5POINT2   5POINT19
   1   5.200000000000000000000000000000   -.000000000000000888178419700125      0          1
   2   5.200000000000000000000000000000   -.000000000000000888178419700125      0          1
   3   5.200000000000000000000000000000   -.000000000000000888178419700125      0          1
   4   5.200000000000000000000000000000   -.000000000000000888178419700125      0          1
   5   5.200000000000000000000000000000   -.000000000000000888178419700125      0          1
output of testing dataset
                                                                                  c_ge_   c_le_
Obs   a   b                                 c                           ca_diff  point3  point3
 1   0.1  1  .1000000000000000000000000000000  .0000000000000000000000000000000     0       1
 2   0.2  2  .2000000000000000000000000000000  .0000000000000000000000000000000     0       1
 3   0.3  3  .3000000000000000000000000000000  .0000000000000000277555756156289     1       0
 4   0.4  4  .4000000000000000000000000000000  .0000000000000000000000000000000     1       0
 5   0.5  5  .5000000000000000000000000000000  .0000000000000000277555756156289     1       0