Skip to content

therneau/survival

Repository files navigation

survival

This is the source code for the "survival" package in R. It gets posted to the comprehensive R archive (CRAN) at intervals, each such posting preceded a throrough test. (I run the test suite for all 800+ packages that depend on survival.) In general, each new push to CRAN will update the second term of the version number, e.g. 2.40-5 to 2.41-0. Updates only to the github source increment after the dash. (If an error is found in the process of CRAN submission then the published CRAN version may be x.yy-1 or even x.yy-2 or 3.) I of course have local working and test versions, which is where I would pull suggested updates to check them out.

The vignettes are slowly being migrated to a companion package survivalVignettes. One reason is that the survival package is already very large, a second is that a recommended package cannot depend on any other packages outside of base + recommended. Some vignettes reference methods or data in other packages, and Rmd is more natural than Sweave for a substantial fraction of users.

A ToDo file lists additions and issues that I am thinking of. New things get added faster than old ones are removed, unfortunately. At the start are some that I would particularly appreciate help with. I have recently shifted to git, which should help with this. (The package has spent 8-11 years managed successively in each of SCCS, rcs, svn, and mercurial.) For those who want to contribute, remember this is a recommended package: you can not use your favorite tidyverse, ggxxx, data.table, etc. package. I (and R core) will be very resistant to adding anything to the imports or depends list that does not absolutely have to be there.

A large portion of the source is found in the noweb directory, and is based on the literate programming ideas of Knuth. Any file in the R or src directories that starts with an "automatically generated ..." comment should NOT be modified directly, instead work with the noweb source. Noweb allows interleaving substantial documentation along with the code and has allowed for deeper documentation of the methods. Note that good practice would be to make derived files such as R/tmerge.R "on the fly" using a configure script; that way there would not be a danger of someone trying to modify the derived file rather than the actual source (noweb/tmerge.Rnw). However, I was not able to create a configure file that worked reliably on all platforms, adding the (redundant) .R files allow the package to be more easily loaded.

However, much as I like the noweb approach, it is clear that very few have adopted it. Thus I will be migrating away as modifications are made to routines, this has already happened with psuedo and residuals.survfit. The extended information on formulas and algorithms will be gathered in the methods vignette. The noweb directory will shrink over time.