{"id":32207731,"url":"https://github.com/graemeleehickey/joiner","last_synced_at":"2026-02-19T23:01:19.056Z","repository":{"id":50244272,"uuid":"77799303","full_name":"graemeleehickey/joineR","owner":"graemeleehickey","description":"R package for fitting joint models to time-to-event and longitudinal data","archived":false,"fork":false,"pushed_at":"2024-12-30T17:42:32.000Z","size":1564,"stargazers_count":18,"open_issues_count":6,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-30T05:31:57.376Z","etag":null,"topics":["biostatistics","competing-risks","cox","joiner","longitudinal-data","r","r-package","repeated-measurements","repeated-measures","statisics","statistical-methods","survival","survival-analysis","time-to-event"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/graemeleehickey.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-01-01T22:26:29.000Z","updated_at":"2025-05-14T10:55:30.000Z","dependencies_parsed_at":"2025-09-08T12:48:51.541Z","dependency_job_id":"879ce3b7-429c-4bb2-8544-f75687fa75cf","html_url":"https://github.com/graemeleehickey/joineR","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/graemeleehickey/joineR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graemeleehickey%2FjoineR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graemeleehickey%2FjoineR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graemeleehickey%2FjoineR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graemeleehickey%2FjoineR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graemeleehickey","download_url":"https://codeload.github.com/graemeleehickey/joineR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graemeleehickey%2FjoineR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29636035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biostatistics","competing-risks","cox","joiner","longitudinal-data","r","r-package","repeated-measurements","repeated-measures","statisics","statistical-methods","survival","survival-analysis","time-to-event"],"created_at":"2025-10-22T05:58:48.706Z","updated_at":"2026-02-19T23:01:19.051Z","avatar_url":"https://github.com/graemeleehickey.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\neditor_options: \n  markdown: \n    wrap: 72\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, echo = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"README-\"\n)\n```\n\n# joineR \u003cimg src=\"man/figures/hex.png\" width=\"175\" height=\"200\" align=\"right\"/\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/graemeleehickey/joineR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/graemeleehickey/joineR/actions/workflows/R-CMD-check.yaml)\n[![AppVeyor Build\nStatus](https://ci.appveyor.com/api/projects/status/github/graemeleehickey/joineR?branch=master\u0026svg=true)](https://ci.appveyor.com/project/graemeleehickey/joineR)\n[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/joineR)](https://CRAN.R-project.org/package=joineR)\n[![](https://cranlogs.r-pkg.org/badges/joineR)](https://CRAN.R-project.org/package=joineR)\n[![](https://cranlogs.r-pkg.org/badges/grand-total/joineR)](https://CRAN.R-project.org/package=joineR)\n[![Research software\nimpact](http://depsy.org/api/package/cran/joineR/badge.svg)](http://depsy.org/package/r/joineR)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1167708.svg)](https://doi.org/10.5281/zenodo.1167708)\n[![Codecov test coverage](https://codecov.io/gh/graemeleehickey/joineR/graph/badge.svg)](https://app.codecov.io/gh/graemeleehickey/joineR)\n\u003c!-- badges: end --\u003e\n\nThe `joineR` package implements methods for analyzing data from\nlongitudinal studies in which the response from each subject consists of\na time-sequence of repeated measurements and a possibly censored\ntime-to-event outcome. The modelling framework for the repeated\nmeasurements is the linear model with random effects and/or correlated\nerror structure (Laird and Ware, 1982). The model for the time-to-event\noutcome is a Cox proportional hazards model with log-Gaussian frailty\n(Cox, 1972). Stochastic dependence is captured by allowing the Gaussian\nrandom effects of the linear model to be correlated with the frailty\nterm of the Cox proportional hazards model. The methodology used to fit\nthe model is described in Henderson et al. (2002) and Wulfsohn and\nTsiatis (1997).\n\nThe `joineR` package also allows competing risks data to be jointly\nmodelled through a cause-specific hazards model. The importance of\naccounting for competing risks is detailed in Williamson et al.\n(2007a,b). The methodology used to fit this model is described in\nWilliamson et al. (2008).\n\n# Example\n\nThe `joineR` package comes with several data sets including one the\ndescribes the survival of patients who underwent aortic valve\nreplacement surgery. The patients were routinely followed up in clinic,\nwhere the left ventricular mass index (LVMI) was calculated. To fit a\njoint model, we must first create a `jointdata` object, which holds the\nsurvival, longitudinal, and baseline covariate data, along with the\nnames of the columns that identify the patient identifiers and repeated\ntime outcomes.\n\n```{r joint_data}\nlibrary(joineR)\ndata(heart.valve)\nheart.surv \u003c- UniqueVariables(heart.valve, \n                              var.col = c(\"fuyrs\", \"status\"),\n                              id.col = \"num\")\nheart.long \u003c- heart.valve[, c(\"num\", \"time\", \"log.lvmi\")]\nheart.cov \u003c- UniqueVariables(heart.valve, \n                             c(\"age\", \"hs\", \"sex\"), \n                             id.col = \"num\")\nheart.valve.jd \u003c- jointdata(longitudinal = heart.long, \n                            baseline = heart.cov, \n                            survival = heart.surv, \n                            id.col = \"num\", \n                            time.col = \"time\")\n```\n\nWith the creation of the `heart.valve.jd` object, we can fit a joint\nmodel using the `joint` function. For this, we need 4 arguments:\n\n-   `jointdata`: the data object we created above\n-   `long.formula`: the linear mixed effects model formula for the\n    longitudinal sub-model\n-   `surv.formula`: the survival formula the survival sub-model\n-   `model`: the latent association structure.\n\n```{r joint_model}\nfit \u003c- joint(data = heart.valve.jd, \n             long.formula = log.lvmi ~ 1 + time + hs, \n             surv.formula = Surv(fuyrs, status) ~ hs, \n             model = \"intslope\")\n\nsummary(fit)\n```\n\nFull details on the data and the functions are provided in the help\ndocumentation and package vignette. The purpose of this code is to\nsimply illustrate the ease and speed in fitting the models.\n\n# Multivariate data\n\n`joineR` only models a single repeated measurement and a single event\ntime. If multiple longitudinal outcomes are available (see Hickey et\nal., 2016), a separate package is available:\n[`joineRML`](https://CRAN.R-project.org/package=joineRML).\n\n# Funding\n\nThis project was funded by the [Medical Research\nCouncil](http://www.mrc.ac.uk) (Grant numbers G0400615 and\nMR/M013227/1).\n\n![](https://www.ukri.org/wp-content/themes/ukri/assets/img/ukri-mrc-standard-logo.png)\n\n# Using the latest developmental version\n\nTo install the latest **developmental version**, you will need the R\npackage `devtools` and to run the following code\n\n``` r\nlibrary('devtools')\ninstall_github('graemeleehickey/joineR', build_vignettes = FALSE)\n```\n\n# References\n\n1.  Cox DR. Regression models and life-tables. *J R Stat Soc Ser B Stat\n    Methodol.* 1972; **34(2)**: 187-220.\n\n2.  Henderson R, Diggle PJ, Dobson A. Joint modelling of longitudinal\n    measurements and event time data. *Biostatistics.* 2000; **1(4)**:\n    465-480.\n\n3.  Hickey GL, Philipson P, Jorgensen A, Kolamunnage-Dona R. Joint\n    modelling of time-to-event and multivariate longitudinal outcomes:\n    recent developments and issues. *BMC Med Res Methodol.* 2016;\n    **16(1)**: 117.\n\n4.  Laird NM, Ware JH. Random-effects models for longitudinal data.\n    *Biometrics.* 1982; **38(4)**: 963-974.\n\n5.  Williamson PR, Kolamunnage-Dona R, Tudur-Smith C. The influence of\n    competing-risks setting on the choice of hypothesis test for\n    treatment effect. *Biostatistics.* 2007; **8(4)**: 689–694.\n\n6.  Williamson PR., Tudur-Smith C, Sander JW, Marson AG. Importance of\n    competing risks in the analysis of anti-epileptic drug failure.\n    *Trials.* 2007; **8**: 12.\n\n7.  Williamson PR, Kolamunnage-Dona R, Philipson P, Marson AG. Joint\n    modelling of longitudinal and competing risks data. *Stat Med.*\n    2008; **27**: 6426–6438.\n\n8.  Wulfsohn MS, Tsiatis AA. A joint model for survival and longitudinal\n    data measured with error. *Biometrics.* 1997; **53(1)**: 330-339.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraemeleehickey%2Fjoiner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraemeleehickey%2Fjoiner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraemeleehickey%2Fjoiner/lists"}