On 2017-04-26 22:17, Duncan Murdoch wrote:> On 26/04/2017 2:51 PM, Therneau, Terry M., Ph.D. wrote: >> A user contacted me directly about this, I answered with my best >> understanding of the >> recent R-help discussion of the issue, and their response to my >> response shows that I'm >> not quite right. >> >> I am emphatically not an MS Windows user so am asking for help -- >> which I will cut/paste >> to this user and to the next dozen who will invariably contact me >> directly. >> >> Thanks, >> Terry Therneau >> >> >> >> -------- Forwarded Message -------- >> Subject: RE: survival package >> Date: Wed, 26 Apr 2017 18:05:30 +0000 >> From: SeshanV at mskcc.org >> To: Therneau, Terry M., Ph.D. <therneau at mayo.edu> >> >> Thank you for the quick response. The session info command for v3.4.0 >> does in fact report >> survival_2.41-3. Furthermore, while both v3.3.1 and v3.40 are on the >> same computer the >> library paths do not have any directory in common: >> >>> .libPaths() >> [1] "C:/Program Files/R/R-3.4.0/library" >>> >> >> and >>> .libPaths() >> [1] "C:/Program Files/R/R-3.3.1/library" >>> >> >> >> Thanks, >> Venkat >> >> >> -----Original Message----- >> From: Therneau, Terry M., Ph.D. [mailto:therneau at mayo.edu] Sent: >> Wednesday, April 26, 2017 >> 1:42 PM >> To: Seshan, Venkatraman E./Epidemiology-Biostatistics >> Subject: Re: survival package >> >> This has been discussed in R-help by multiple people. You have a >> pre-3.4 version of the >> survival package somewhere on your search path, and the method for >> resolving .C calls has >> changed. The sessionInfo command should report survival version 2.41-3. >> >> Terry T. >> >> >> On 04/26/2017 12:17 PM, SeshanV at mskcc.org wrote: >>> Dear Prof. Therneau, >>> >>> I am encountering an error message when I try to use the coxfit6 >>> routine from the survival package under the 3.4.0 version of R. The >>> minimal function and the script are in the attached file. This >>> function worked under earlier versions of R. >>> >>> ---------------------------------------------------------------------- >>> ------------------------- >>> >>> *************************** >>> ** Works under R-3.3.1 ** >>> *************************** >>> >>>> source("coxfit6-issue.R") >>> [1] -0.4838181 >>> >>>> sessionInfo() >>> R version 3.3.1 (2016-06-21) >>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 >>> (build 7601) Service Pack 1 >>> >>> locale: >>> [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United >>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] survival_2.39-4 >>> >>> loaded via a namespace (and not attached): >>> [1] Matrix_1.2-6 splines_3.3.1 grid_3.3.1 lattice_0.20-33 >>> >>> ---------------------------------------------------------------------- >>> ------------------------- >>> >>> *********************************** >>> ** Does not work under R-3.4.0 ** >>> *********************************** >>> >>>> library(survival) >>>> source("coxfit6-issue.R") >>> Error in .Call("Ccoxfit6", as.integer(control$iter.max), stime, >>> as.integer(sstat), : >>> "Ccoxfit6" not available for .Call() for package "survival" > > As far as I can see, that line doesn't appear in the current survival > source code, it's from some earlier version of the package. The current > one has > > coxfit <- .Call(Ccoxfit6, > as.integer(maxiter), > stime, > sstat, > x[sorted,], > as.double(offset[sorted]), > weights, > newstrat, > as.integer(method=="efron"), > as.double(control$eps), > as.double(control$toler.chol), > as.vector(init), > as.integer(1)) # internally rescale > > There are several differences, the one leading to the error being the > change from "Ccoxfit6" in quotes, to Ccoxfit6 not in quotes. That > corresponds to the difference between a registered symbol and an > unregistered one.I think it's worthwhile to point out that non-exported symbols are available using ':::'. See WRE Section 5.4. So, after fixing the argument list, just use '.Call(survival:::Ccoxfit6, <args>)' instead of '.Call("Ccoxfit6", <args>, PACKAGE = "survival")'. Henric Winell> > Without seeing the code that led to the error message I can't really say > how the error came about. There are a few ways: > > - The user has a copy of the coxph.fit function from an older version of > survival saved in their workspace, and are using that one instead of the > current one. > > - Some part of your code returns functions, and one of those is making > this call based on an object produced in an earlier version of survival. > > - There are really two versions of survival on the search path (or > perhaps copied bits of one), and this call isn't in survival 2.41-3 at all. > > Duncan Murdoch > >>>> sessionInfo() >>> R version 3.4.0 (2017-04-21) >>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 >>> (build 7601) Service Pack 1 >>> >>> Matrix products: default >>> >>> locale: >>> [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United >>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] survival_2.41-3 >>> >>> loaded via a namespace (and not attached): >>> [1] compiler_3.4.0 Matrix_1.2-9 splines_3.4.0 grid_3.4.0 >>> [5] lattice_0.20-35 >>> >>> ---------------------------------------------------------------------- >>> ------------------------- >>> >>> When I remove the quotes surrounding Ccoxfit6 in the function both >>> versions give the error: >>> >>> Error in phcoefs(stim[ii], sts[ii], as.matrix(as.double(cvt[ii])), >>> oo$coefficients, : >>> object 'Ccoxfit6' not found >>> >>> >>> I would greatly appreciate your help in resolving this. >>> >>> Thanks, >>> Venkat Seshan >>> >> >> >> ====================================================================>> >> Please note that this e-mail and any files transmitted from >> Memorial Sloan Kettering Cancer Center may be privileged, >> confidential, >> and protected from disclosure under applicable law. If the >> reader of >> this message is not the intended recipient, or an employee or agent >> responsible for delivering this message to the intended recipient, >> you are hereby notified that any reading, dissemination, >> distribution, >> copying, or other use of this communication or any of its >> attachments >> is strictly prohibited. If you have received this communication in >> error, please notify the sender immediately by replying to this >> message >> and deleting this message, any attachments, and all copies and >> backups >> from your computer. >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >
On 28/04/2017 5:37 PM, Henric Winell wrote:> On 2017-04-26 22:17, Duncan Murdoch wrote: > >> On 26/04/2017 2:51 PM, Therneau, Terry M., Ph.D. wrote: >>> A user contacted me directly about this, I answered with my best >>> understanding of the >>> recent R-help discussion of the issue, and their response to my >>> response shows that I'm >>> not quite right. >>> >>> I am emphatically not an MS Windows user so am asking for help -- >>> which I will cut/paste >>> to this user and to the next dozen who will invariably contact me >>> directly. >>> >>> Thanks, >>> Terry Therneau >>> >>> >>> >>> -------- Forwarded Message -------- >>> Subject: RE: survival package >>> Date: Wed, 26 Apr 2017 18:05:30 +0000 >>> From: SeshanV at mskcc.org >>> To: Therneau, Terry M., Ph.D. <therneau at mayo.edu> >>> >>> Thank you for the quick response. The session info command for v3.4.0 >>> does in fact report >>> survival_2.41-3. Furthermore, while both v3.3.1 and v3.40 are on the >>> same computer the >>> library paths do not have any directory in common: >>> >>>> .libPaths() >>> [1] "C:/Program Files/R/R-3.4.0/library" >>>> >>> >>> and >>>> .libPaths() >>> [1] "C:/Program Files/R/R-3.3.1/library" >>>> >>> >>> >>> Thanks, >>> Venkat >>> >>> >>> -----Original Message----- >>> From: Therneau, Terry M., Ph.D. [mailto:therneau at mayo.edu] Sent: >>> Wednesday, April 26, 2017 >>> 1:42 PM >>> To: Seshan, Venkatraman E./Epidemiology-Biostatistics >>> Subject: Re: survival package >>> >>> This has been discussed in R-help by multiple people. You have a >>> pre-3.4 version of the >>> survival package somewhere on your search path, and the method for >>> resolving .C calls has >>> changed. The sessionInfo command should report survival version 2.41-3. >>> >>> Terry T. >>> >>> >>> On 04/26/2017 12:17 PM, SeshanV at mskcc.org wrote: >>>> Dear Prof. Therneau, >>>> >>>> I am encountering an error message when I try to use the coxfit6 >>>> routine from the survival package under the 3.4.0 version of R. The >>>> minimal function and the script are in the attached file. This >>>> function worked under earlier versions of R. >>>> >>>> ---------------------------------------------------------------------- >>>> ------------------------- >>>> >>>> *************************** >>>> ** Works under R-3.3.1 ** >>>> *************************** >>>> >>>>> source("coxfit6-issue.R") >>>> [1] -0.4838181 >>>> >>>>> sessionInfo() >>>> R version 3.3.1 (2016-06-21) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 >>>> (build 7601) Service Pack 1 >>>> >>>> locale: >>>> [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United >>>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] survival_2.39-4 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] Matrix_1.2-6 splines_3.3.1 grid_3.3.1 lattice_0.20-33 >>>> >>>> ---------------------------------------------------------------------- >>>> ------------------------- >>>> >>>> *********************************** >>>> ** Does not work under R-3.4.0 ** >>>> *********************************** >>>> >>>>> library(survival) >>>>> source("coxfit6-issue.R") >>>> Error in .Call("Ccoxfit6", as.integer(control$iter.max), stime, >>>> as.integer(sstat), : >>>> "Ccoxfit6" not available for .Call() for package "survival" >> >> As far as I can see, that line doesn't appear in the current survival >> source code, it's from some earlier version of the package. The current >> one has >> >> coxfit <- .Call(Ccoxfit6, >> as.integer(maxiter), >> stime, >> sstat, >> x[sorted,], >> as.double(offset[sorted]), >> weights, >> newstrat, >> as.integer(method=="efron"), >> as.double(control$eps), >> as.double(control$toler.chol), >> as.vector(init), >> as.integer(1)) # internally rescale >> >> There are several differences, the one leading to the error being the >> change from "Ccoxfit6" in quotes, to Ccoxfit6 not in quotes. That >> corresponds to the difference between a registered symbol and an >> unregistered one. > > I think it's worthwhile to point out that non-exported symbols are > available using ':::'. See WRE Section 5.4. > > So, after fixing the argument list, just use '.Call(survival:::Ccoxfit6, > <args>)' instead of '.Call("Ccoxfit6", <args>, PACKAGE = "survival")'. >Yes, and in another section it says "Using foo:::f instead of foo::f allows access to unexported objects. This is generally not recommended, as the semantics of unexported objects may be changed by the package author in routine maintenance." Duncan Murdoch> > Henric Winell > > > >> >> Without seeing the code that led to the error message I can't really say >> how the error came about. There are a few ways: >> >> - The user has a copy of the coxph.fit function from an older version of >> survival saved in their workspace, and are using that one instead of the >> current one. >> >> - Some part of your code returns functions, and one of those is making >> this call based on an object produced in an earlier version of survival. >> >> - There are really two versions of survival on the search path (or >> perhaps copied bits of one), and this call isn't in survival 2.41-3 at all. >> >> Duncan Murdoch >> >>>>> sessionInfo() >>>> R version 3.4.0 (2017-04-21) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 >>>> (build 7601) Service Pack 1 >>>> >>>> Matrix products: default >>>> >>>> locale: >>>> [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United >>>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] survival_2.41-3 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] compiler_3.4.0 Matrix_1.2-9 splines_3.4.0 grid_3.4.0 >>>> [5] lattice_0.20-35 >>>> >>>> ---------------------------------------------------------------------- >>>> ------------------------- >>>> >>>> When I remove the quotes surrounding Ccoxfit6 in the function both >>>> versions give the error: >>>> >>>> Error in phcoefs(stim[ii], sts[ii], as.matrix(as.double(cvt[ii])), >>>> oo$coefficients, : >>>> object 'Ccoxfit6' not found >>>> >>>> >>>> I would greatly appreciate your help in resolving this. >>>> >>>> Thanks, >>>> Venkat Seshan >>>> >>> >>> >>> ====================================================================>>> >>> Please note that this e-mail and any files transmitted from >>> Memorial Sloan Kettering Cancer Center may be privileged, >>> confidential, >>> and protected from disclosure under applicable law. If the >>> reader of >>> this message is not the intended recipient, or an employee or agent >>> responsible for delivering this message to the intended recipient, >>> you are hereby notified that any reading, dissemination, >>> distribution, >>> copying, or other use of this communication or any of its >>> attachments >>> is strictly prohibited. If you have received this communication in >>> error, please notify the sender immediately by replying to this >>> message >>> and deleting this message, any attachments, and all copies and >>> backups >>> from your computer. >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >>> >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> >
Thank you everyone for all your help. Dr. Therneau and I had some offline email exchange and he offered to add resid= and concordance= options which will reduce the computational overhead in resampling scenarios such as mine. It will also avoid having to access unexported internals. Thanks, Venkat -----Original Message----- From: Duncan Murdoch [mailto:murdoch.duncan at gmail.com] Sent: Friday, April 28, 2017 6:46 PM To: Henric Winell; Therneau, Terry M., Ph.D.; R-help Cc: Seshan, Venkatraman E./Epidemiology-Biostatistics Subject: Re: [R] survival package can't find Ccoxfit6 On 28/04/2017 5:37 PM, Henric Winell wrote:> On 2017-04-26 22:17, Duncan Murdoch wrote: > >> On 26/04/2017 2:51 PM, Therneau, Terry M., Ph.D. wrote: >>> A user contacted me directly about this, I answered with my best >>> understanding of the recent R-help discussion of the issue, and >>> their response to my response shows that I'm not quite right. >>> >>> I am emphatically not an MS Windows user so am asking for help -- >>> which I will cut/paste to this user and to the next dozen who will >>> invariably contact me directly. >>> >>> Thanks, >>> Terry Therneau >>> >>> >>> >>> -------- Forwarded Message -------- >>> Subject: RE: survival package >>> Date: Wed, 26 Apr 2017 18:05:30 +0000 >>> From: SeshanV at mskcc.org >>> To: Therneau, Terry M., Ph.D. <therneau at mayo.edu> >>> >>> Thank you for the quick response. The session info command for >>> v3.4.0 does in fact report survival_2.41-3. Furthermore, while both >>> v3.3.1 and v3.40 are on the same computer the library paths do not >>> have any directory in common: >>> >>>> .libPaths() >>> [1] "C:/Program Files/R/R-3.4.0/library" >>>> >>> >>> and >>>> .libPaths() >>> [1] "C:/Program Files/R/R-3.3.1/library" >>>> >>> >>> >>> Thanks, >>> Venkat >>> >>> >>> -----Original Message----- >>> From: Therneau, Terry M., Ph.D. [mailto:therneau at mayo.edu] Sent: >>> Wednesday, April 26, 2017 >>> 1:42 PM >>> To: Seshan, Venkatraman E./Epidemiology-Biostatistics >>> Subject: Re: survival package >>> >>> This has been discussed in R-help by multiple people. You have a >>> pre-3.4 version of the >>> survival package somewhere on your search path, and the method for >>> resolving .C calls has >>> changed. The sessionInfo command should report survival version 2.41-3. >>> >>> Terry T. >>> >>> >>> On 04/26/2017 12:17 PM, SeshanV at mskcc.org wrote: >>>> Dear Prof. Therneau, >>>> >>>> I am encountering an error message when I try to use the coxfit6 >>>> routine from the survival package under the 3.4.0 version of R. The >>>> minimal function and the script are in the attached file. This >>>> function worked under earlier versions of R. >>>> >>>> ------------------------------------------------------------------- >>>> --- >>>> ------------------------- >>>> >>>> *************************** >>>> ** Works under R-3.3.1 ** >>>> *************************** >>>> >>>>> source("coxfit6-issue.R") >>>> [1] -0.4838181 >>>> >>>>> sessionInfo() >>>> R version 3.3.1 (2016-06-21) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 >>>> x64 (build 7601) Service Pack 1 >>>> >>>> locale: >>>> [1] LC_COLLATE=English_United States.1252 [2] >>>> LC_CTYPE=English_United >>>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] survival_2.39-4 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] Matrix_1.2-6 splines_3.3.1 grid_3.3.1 lattice_0.20-33 >>>> >>>> ------------------------------------------------------------------- >>>> --- >>>> ------------------------- >>>> >>>> *********************************** >>>> ** Does not work under R-3.4.0 ** >>>> *********************************** >>>> >>>>> library(survival) >>>>> source("coxfit6-issue.R") >>>> Error in .Call("Ccoxfit6", as.integer(control$iter.max), stime, >>>> as.integer(sstat), : >>>> "Ccoxfit6" not available for .Call() for package "survival" >> >> As far as I can see, that line doesn't appear in the current survival >> source code, it's from some earlier version of the package. The >> current one has >> >> coxfit <- .Call(Ccoxfit6, >> as.integer(maxiter), >> stime, >> sstat, >> x[sorted,], >> as.double(offset[sorted]), >> weights, >> newstrat, >> as.integer(method=="efron"), >> as.double(control$eps), >> as.double(control$toler.chol), >> as.vector(init), >> as.integer(1)) # internally rescale >> >> There are several differences, the one leading to the error being the >> change from "Ccoxfit6" in quotes, to Ccoxfit6 not in quotes. That >> corresponds to the difference between a registered symbol and an >> unregistered one. > > I think it's worthwhile to point out that non-exported symbols are > available using ':::'. See WRE Section 5.4. > > So, after fixing the argument list, just use > '.Call(survival:::Ccoxfit6, <args>)' instead of '.Call("Ccoxfit6", <args>, PACKAGE = "survival")'. >Yes, and in another section it says "Using foo:::f instead of foo::f allows access to unexported objects. This is generally not recommended, as the semantics of unexported objects may be changed by the package author in routine maintenance." Duncan Murdoch> > Henric Winell > > > >> >> Without seeing the code that led to the error message I can't really >> say how the error came about. There are a few ways: >> >> - The user has a copy of the coxph.fit function from an older version >> of survival saved in their workspace, and are using that one instead >> of the current one. >> >> - Some part of your code returns functions, and one of those is >> making this call based on an object produced in an earlier version of survival. >> >> - There are really two versions of survival on the search path (or >> perhaps copied bits of one), and this call isn't in survival 2.41-3 at all. >> >> Duncan Murdoch >> >>>>> sessionInfo() >>>> R version 3.4.0 (2017-04-21) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 >>>> x64 (build 7601) Service Pack 1 >>>> >>>> Matrix products: default >>>> >>>> locale: >>>> [1] LC_COLLATE=English_United States.1252 [2] >>>> LC_CTYPE=English_United >>>> States.1252 [3] LC_MONETARY=English_United States.1252 [4] >>>> LC_NUMERIC=C [5] LC_TIME=English_United States.1252 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] survival_2.41-3 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] compiler_3.4.0 Matrix_1.2-9 splines_3.4.0 grid_3.4.0 >>>> [5] lattice_0.20-35 >>>> >>>> ------------------------------------------------------------------- >>>> --- >>>> ------------------------- >>>> >>>> When I remove the quotes surrounding Ccoxfit6 in the function both >>>> versions give the error: >>>> >>>> Error in phcoefs(stim[ii], sts[ii], as.matrix(as.double(cvt[ii])), >>>> oo$coefficients, : >>>> object 'Ccoxfit6' not found >>>> >>>> >>>> I would greatly appreciate your help in resolving this. >>>> >>>> Thanks, >>>> Venkat Seshan >>>> >>> >>> >>> ===================================================================>>> >>> >>> Please note that this e-mail and any files transmitted from >>> Memorial Sloan Kettering Cancer Center may be privileged, >>> confidential, >>> and protected from disclosure under applicable law. If the >>> reader of >>> this message is not the intended recipient, or an employee or agent >>> responsible for delivering this message to the intended recipient, >>> you are hereby notified that any reading, dissemination, >>> distribution, >>> copying, or other use of this communication or any of its >>> attachments >>> is strictly prohibited. If you have received this communication in >>> error, please notify the sender immediately by replying to >>> this message >>> and deleting this message, any attachments, and all copies and >>> backups >>> from your computer. >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >>> >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> >