[R] SAS-like method of recoding variables?

Frank E Harrell Jr f.harrell at vanderbilt.edu
Tue Jun 23 15:08:37 CEST 2009


Dieter Menne wrote:
> 
> 
> P.Dalgaard wrote:
>>
>>> IF TYPE='TRUCK' and count=12 THEN VEHICLES=TRUCK+((CAR+BIKE)/2.2);
>> vehicles <- ifelse(TYPE=='TRUCK' & count=12, TRUCK+((CAR+BIKE)/2.2), NA)
>>
>>
> 
> Read both versions to an audience, and you will have to admit that this is
> one of the cases where SAS is superior.

Here's a case where SAS is clearly not superior:

IF type='TRUCK' AND count<12 THEN vehicles=truck+(car+bike)/2.2;

If count is missing, the statement is considered TRUE and the THEN is 
executed.  This is because SAS considers a missing as less than any 
number.  This resulted in a significant error, never corrected, in a 
widely cited New England Journal of Medicine paper.

Frank

> 
> Dieter
> 
> 


-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the R-help mailing list