[Rd] numerics from a factor

Ulrike Grömping groemping at bht-berlin.de
Sat Mar 16 13:04:07 CET 2013


Hi Terry,

you can use type.convert instead of as.numeric for numbers with decimals:

type.convert(levels(factor(1:6/2)), dec=unlist(options("OutDec")))

Best,
Ulrike


Am 16.03.2013 12:00, schrieb r-devel-request at r-project.org:
> Date: Fri, 15 Mar 2013 12:47:01 -0500
> From: Terry Therneau<therneau at mayo.edu>
> To:"r-devel at r-project.org"  <r-devel at r-project.org>
> Subject: [Rd] numerics from a factor
> Message-ID:<51435E95.304 at mayo.edu>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> A problem has been pointed out by a French user of the survival package and I'm looking
> for a pointer.
>
>   > options(OutDec= ",")
>   > fit <- survfit(Surv(1:6 /2) ~ 1)
>   > fit$time
> [1] NA  1 NA  2 NA  3
>
> A year or two ago some test cases that broke survfit were presented to me. The heart of
> the problem was numbers that were almost identical, where table(x) and unique(x) gave
> different counts of distinct values.
> The solution was to use "ftime <- factor(time)" at the top of the code, and do all the
> calulations using the integer levels of the factor as the unique time points.  At the very
> end the numeric component "time" of the result is created using
> as.numeric(levels(ftime)).  It's this last line that breaks.
>
> I could set the OutDec option within survfit and reset when I leave using on.exit.  Any
> other simple solutions?  Any other ways I could get caught by this issue?
>
> Terry Therneau



More information about the R-devel mailing list