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