>>>>> Ulrike Grömping <groemp...@bht-berlin.de>
>>>>>     on Sat, 16 Mar 2013 13:04:07 +0100 writes:

    > 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

a late and minor remark: If you use the above, a slightly more expressive
preferred way is 

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

Martin


    > Am 16.03.2013 12:00, schrieb r-devel-requ...@r-project.org:

   [...]

    >> 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

Reply via email to