
Dear all,

I have encountered a weird behaviour in R 
survival package which seems to me to be a bug. 

The weird behaviour happens when I am using 
100 variables in the ridge function when calling 
coxph with following formula Surv(time = futime,
event = fustat, type = "right") ~ ridge(X1, X2, 
X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, 
X14, X15, X16, X17, X18, X19, X20, X21, X22, X23,
X24, X25, X26, X27, X28, X29, X30, X31, X32, X33,
X34, X35, X36, X37, X38, X39, X40, X41, X42, X43, 
X44, X45, X46, X47, X48, X49, X50, X51, X52, X53, 
X54, X55, X56, X57, X58, X59, X60, X61, X62, X63, 
X64, X65, X66, X67, X68, X69, X70, X71, X72, X73,
X74, X75, X76, X77, X78, X79, X80, X81, X82, X83,
X84, X85, X86, X87, X88, X89, X90, X91, X92, X93, 
X94, X95, X96, X97, X98, X99, X100, 
theta = lambda, scale = FALSE)

and get the error message 
Error in model.frame.default(formula = form,
data = sdf) : invalid variable names 
Calls: coxph -> eval -> eval ->
model.frame -> model.frame.default Execution halted

I am using R 2.8.0 and the latest version of 
the survival package 2.35-4.

Here is how you can re-create the error message

> library(survival)
Loading required package: splines
> x<-as.data.frame(matrix(rnorm(100*500),ncol=100))
> x$y<-1:500
> x$status<-1
> lambda<-1.0
> ff<-as.formula(paste("Surv(y,status)~ridge(",
    paste(names(x)[1:100],collapse=","), 
    ",theta = lambda, scale = FALSE)"))
> coxph(ff,x)
Error in model.frame.default(formula = ff, 
data = x) : invalid variable names
> print (ff)
Surv(y, status) ~ ridge(V1, V2, V3, V4, V5, V6, V7, V8, V9, V10,
    V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22,
    V23, V24, V25, V26, V27, V28, V29, V30, V31, V32, V33, V34,
    V35, V36, V37, V38, V39, V40, V41, V42, V43, V44, V45, V46,
    V47, V48, V49, V50, V51, V52, V53, V54, V55, V56, V57, V58,
    V59, V60, V61, V62, V63, V64, V65, V66, V67, V68, V69, V70,
    V71, V72, V73, V74, V75, V76, V77, V78, V79, V80, V81, V82,
    V83, V84, V85, V86, V87, V88, V89, V90, V91, V92, V93, V94,
    V95, V96, V97, V98, V99, V100, theta = lambda, scale = FALSE)

Also I have found that the code breaks with number of variables greater
than 97. For 97 and less it works fine. I have found that it breaks at the
following line of the coxph function

    if (is.R())
        m <- eval(temp, parent.frame())

I have been trying to understand why it breaks there and have not
progressed much so far.

With kind regards
DK


_________________________________________________________________

icons.

	[[alternative HTML version deleted]]


