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-requ...@r-project.org:
Date: Fri, 15 Mar 2013 12:47:01 -0500 From: Terry Therneau<thern...@mayo.edu> To:"r-devel@r-project.org" <r-devel@r-project.org> Subject: [Rd] numerics from a factor Message-ID:<51435e95....@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
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel