[R] survexp - example produces error
Heinz Tuechler
tuechler at gmx.at
Fri Dec 31 17:56:27 CET 2010
Follow up:
The critical line seems to be in survexp around line 97
rdata <- data.frame(eval(rcall, m))
If changed to:
old.stringsAsFactors <- options()$stringsAsFactors
options(stringsAsFactors=TRUE)
rdata <- data.frame(eval(rcall, m)) ### <- seems to be critical
options(stringsAsFactors=old.stringsAsFactors)
it seems to work.
Heinz
At 31.12.2010 15:53 +0100, Heinz Tuechler wrote:
>Dear Peter, Dear All,
>
>a further attempt led me to an answer. If I set
>options(stringsAsFactors=TRUE), which I usually have set to FALSE,
>no error occurs.
>I am, however not happy with this solution.
>
>Heinz
>
>Thank you, Peter
>
>after setting options(error=recover), see the output below, once for
>frame number 2, which I suspect to be the problem, once for frame number 1.
>
>Heinz
>
> > expect <-
>+ survexp(futime ~ ratetable(age=(accept.dt - birth.dt),
>+ sex=1,year=accept.dt,race="white"),
>+ jasa, cohort=FALSE,
>+ ratetable=survexp.usr)
>Error in floor(temp) : Non-numeric argument to mathematical function
>
>Enter a frame number, or 0 to exit
>
>1: survexp(futime ~ ratetable(age = (accept.dt - birth.dt), sex = 1, year = ac
>2: match.ratetable(rdata, ratetable)
>
>Selection: 2
>Called from: top level
>Browse[1]> temp
> [1] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [10] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [19] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [28] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [37] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [46] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [55] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [64] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [73] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [82] "white" "white" "white" "white" "white" "white" "white" "white" "white"
> [91] "white" "white" "white" "white" "white" "white" "white" "white" "white"
>[100] "white" "white" "white" "white"
>Browse[1]> Q
> >
>
>There is also 'temp' in frame number 1.
>
> > expect <-
>+ survexp(futime ~ ratetable(age=(accept.dt - birth.dt),
>+ sex=1,year=accept.dt,race="white"),
>+ jasa, cohort=FALSE,
>+ ratetable=survexp.usr)
>Error in floor(temp) : Non-numeric argument to mathematical function
>
>Enter a frame number, or 0 to exit
>
>1: survexp(futime ~ ratetable(age = (accept.dt - birth.dt), sex = 1, year = ac
>2: match.ratetable(rdata, ratetable)
>
>Selection: 1
>Called from: top level
>Browse[1]> temp
> [1] 49 5 15 38 17 2 674 39 84 57 152 7
> 80 1386 0
>[16] 307 35 42 36 27 1031 50 732 218 1799
>1400 262 71 34 851
>[31] 76 1586 1571 11 99 65 4 52 1407
>1321 1 44 995 8 1141
>[46] 979 284 101 187 60 941 148 342 915 67 68 841
>583 77 31
>[61] 669 29 619 595 89 16 544 20 514 95 481 444
>427 79 333
>[76] 396 109 369 206 185 339 264 164 179 130 108 30 10
>Browse[1]> Q
>
>
>
>At 31.12.2010 13:46 +0100, peter dalgaard wrote:
>
>>On Dec 31, 2010, at 10:21 , Heinz Tuechler wrote:
>>
>> > Dear All,
>> >
>> > reposting, because I did not find a solution, maybe someone
>> could check the example below.
>> >
>> > It's taken from the help page of survdiff. Executing it, gives the error
>> >
>> > "Error in floor(temp) : Non-numeric argument to mathematical function"
>>
>>Hmm, it's not happening to me (Mac OSX) either with 2.12.1 or the
>>current R-patched (r53892). Could be a platform issue (sounds
>>unlikely), a local user issue, or a locale one.
>>
>>Could you set options(error=recover) and find out what is the value
>>of "temp" when the error occurs?
>>
>> >
>> > best regards,
>> >
>> > Heinz
>> >
>> > library(survival)
>> >
>> > ## Example from help page of survdiff
>> > ## Expected survival for heart transplant patients based on
>> > ## US mortality tables
>> > expect <-
>> > survexp(futime ~ ratetable(age=(accept.dt - birth.dt),
>> > sex=1,year=accept.dt,race="white"),
>> > jasa, cohort=FALSE,
>> > ratetable=survexp.usr)
>> >
>> > Error in floor(temp) : Non-numeric argument to mathematical function
>> >
>> > sessionInfo('survival')
>> >
>> > R version 2.12.1 Patched (2010-12-18 r53869)
>> > Platform: i386-pc-mingw32/i386 (32-bit)
>> >
>> > locale:
>> > [1] LC_COLLATE=German_Switzerland.1252 LC_CTYPE=German_Switzerland.1252
>> > [3] LC_MONETARY=German_Switzerland.1252 LC_NUMERIC=C
>> > [5] LC_TIME=German_Switzerland.1252
>> >
>> > attached base packages:
>> > character(0)
>> >
>> > other attached packages:
>> > [1] survival_2.36-2
>> >
>> > loaded via a namespace (and not attached):
>> > [1] base_2.12.1 graphics_2.12.1 grDevices_2.12.1 methods_2.12.1
>> > [5] splines_2.12.1 stats_2.12.1 tools_2.12.1 utils_2.12.1
>> > > traceback()
>> > 2: match.ratetable(rdata, ratetable)
>> > 1: survexp(futime ~ ratetable(age = (accept.dt - birth.dt), sex = 1,
>> > year = accept.dt, race = "white"), jasa, cohort = FALSE,
>> > ratetable = survexp.usr)
>> > >
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>>
>>--
>>Peter Dalgaard
>>Center for Statistics, Copenhagen Business School
>>Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>>Phone: (+45)38153501
>>Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list