{"id":32207728,"url":"https://github.com/mskcc-epi-bio/proscorertools","last_synced_at":"2025-10-22T05:58:46.906Z","repository":{"id":56934009,"uuid":"71409027","full_name":"MSKCC-Epi-Bio/PROscorerTools","owner":"MSKCC-Epi-Bio","description":"Tools to Score Patient-Reported Outcome (PRO) Measures and Other Psychometric Instruments","archived":false,"fork":false,"pushed_at":"2023-10-17T07:57:05.000Z","size":85,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-22T05:58:40.283Z","etag":null,"topics":["clinical-trials","pros","psychometrics","qol","quality-of-life","questionnaire","r","r-package","survey"],"latest_commit_sha":null,"homepage":"","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MSKCC-Epi-Bio.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-19T23:52:13.000Z","updated_at":"2024-09-09T11:47:06.000Z","dependencies_parsed_at":"2022-08-21T06:50:38.629Z","dependency_job_id":null,"html_url":"https://github.com/MSKCC-Epi-Bio/PROscorerTools","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/MSKCC-Epi-Bio/PROscorerTools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSKCC-Epi-Bio%2FPROscorerTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSKCC-Epi-Bio%2FPROscorerTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSKCC-Epi-Bio%2FPROscorerTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSKCC-Epi-Bio%2FPROscorerTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MSKCC-Epi-Bio","download_url":"https://codeload.github.com/MSKCC-Epi-Bio/PROscorerTools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MSKCC-Epi-Bio%2FPROscorerTools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280389299,"owners_count":26322507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["clinical-trials","pros","psychometrics","qol","quality-of-life","questionnaire","r","r-package","survey"],"created_at":"2025-10-22T05:58:45.137Z","updated_at":"2025-10-22T05:58:46.900Z","avatar_url":"https://github.com/MSKCC-Epi-Bio.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document\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[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/PROscorerTools)](https://cran.r-project.org/package=PROscorerTools)\n\n[![Coverage Status](https://img.shields.io/codecov/c/github/MSKCC-Epi-Bio/PROscorerTools/master.svg)](https://app.codecov.io/github/MSKCC-Epi-Bio/PROscorerTools?branch=master)\n\n# PROscorerTools\n\n## Overview\n\nPROscorerTools provides tools to score patient-reported outcome (PRO) measures \nand other quality of life (QoL) and psychometric instruments.   PROscorerTools\nalso provides the building blocks of the functions in the PROscorer package.\n\nPROscorerTools contains several \"helper\" functions, each of which performs a\nspecific task that is common when scoring PRO-like instruments (e.g., reverse\ncoding items).  But most users will find that the `scoreScale()` function alone\ncan address their scoring needs.\n\n## The `scoreScale()` Function\n\nThe workhorse function in PROscorerTools is the `scoreScale()` function. Its\nbasic job is to take a data frame containing responses to some items, and output\na single score for those items.\n\nThe `scoreScale()` function has simple, flexible arguments that enable it to\nhandle nearly all scoring situations.\n\n__Features:__\n\n*  __Reverse Coding:__ Before calculating a score, `scoreScale()` can reverse\ncode all of the items, only some specific items, or none of the items (no\nreverse coding is the default).\n\n*  __Different Types of Scores:__ Some instruments need to be scored by summing\nitem responses, others by taking the mean of item responses, and others by\nre-scaling the sum or mean scores to range from 0 to 100.  All 3 of these score\ntypes are available in the `scoreScale()` function.\n\n*  __Calculation of Scores with Missing Items:__ For most instruments, valid\nscores can be obtained despite a certain number of missing item responses.  For\nexample, on the EORTC QLQ-C30, a score can be calculated as long as at least 50%\nof items on a given scale are non-missing.  The `scoreScale()` function allows\nthe user to specify the proportion of missing items that is allowed, and the\nscore is prorated to be comparable to scores with no missing items.  If a\nrespondent has more than the allowed proportion of missing items, then that\nrespondent will be assigned a missing score (e.g., `NA`).\n\n*  __Scoring Instruments with Multiple Scores:__ More complex instruments that \nyield more than a single score can be scored by combining multiple calls to the \n`scoreScale()` function.  In fact, most of the functions in the **PROscorer**\npackage call `scoreScale()` multiple times.\n\n\n\n## Installation and Basic Usage\n\nInstall the stable version from CRAN (recommended):\n\n```{r eval=FALSE}\ninstall.packages(\"PROscorerTools\")\n```\n\nIf you want to contribute to the development of the PROscorerTools or PROscorer\npackages, then you can install the development version from GitHub (generally\nNOT recommended):\n\n```{r eval=FALSE}\ndevtools::install_github(\"MSKCC-Epi-Bio/PROscorerTools\")\n```\n\nLoad PROscorerTools in your R workspace:\n\n```{r eval = FALSE}\nlibrary(PROscorerTools)\n```\n\nAs an example, we will use the `makeFakeData()` function to make a data frame of\nresponses to 6 fake items from 20 imaginary respondents.  The created data set\n(named \"dat\") has an \"id\" variable, plus responses to 6 items (named \"q1\", \"q2\",\netc.) from 20 imaginary respondents.  There are also missing responses (\"NA\")\nscattered throughout.\n\n```{r eval = FALSE}\ndat \u003c- makeFakeData(n = 20, nitems = 6, values = 0:4, id = TRUE)\n```\n\nBelow we use the `scoreScale` function to score the fake responses in \"dat\".  We\nuse the `items` argument to tell `scoreScale` which variables are the items we\nwant to score.  We will score the items by summing the responses (`type =\n\"sum\"`).  We will save the scores from the fake questionnaire in a data frame\nnamed \"dat_scored\".\n\n```{r eval=FALSE}\ndat_scored \u003c- scoreScale(df = dat, items = 2:7, type = \"sum\")\ndat_scored\n```\n\nBy default, `scoreScale` will score the items for a given respondent as long as\nthe respondent is missing no more than 50% of the items.  This can be changed\nwith the `okmiss` argument.  Above, `okmiss = 0.50` by default, so a respondent\ncould be missing 3 of the 6 items and still be assigned a score (if missing 4 or\nmore items, they were assigned a score of `NA`).  Below, we again score the\nitems, but this time we allow less than half of the items to be missing to be\nscored (`okmiss = 0.49`).\n\n```{r eval=FALSE}\ndat_scored \u003c- scoreScale(df = dat, items = 2:7, type = \"sum\", okmiss = 0.49)\ndat_scored\n```\n\nFor more information on the `scoreScale` function, you can access its \"help\"\npage by typing `?scoreScale` into R.\n\n\n\n## Resources for More Information\n\n* You can access the \"help\" page for \"PROscorerTools\" package by typing\n`?PROscorerTools` into R.\n\n* Check out the [PROscorerTools\nvignettes](https://CRAN.R-project.org/package=PROscorerTools).\n\n* For examples on how to use the `scoreScale` function within a more complex\nscoring function, check out the source code for some of the functions in the\n**PROscorer** package.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmskcc-epi-bio%2Fproscorertools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmskcc-epi-bio%2Fproscorertools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmskcc-epi-bio%2Fproscorertools/lists"}