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 [email protected]:
Date: Fri, 15 Mar 2013 12:47:01 -0500
From: Terry Therneau<[email protected]>
To:"[email protected]" <[email protected]>
Subject: [Rd] numerics from a factor
Message-ID:<[email protected]>
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
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel