scoreFACT_GP: Score the FACT-GP

View source: R/gen-scoreFACT_GP.R

scoreFACT_GPR Documentation

Score the FACT-GP


Generates all of the scores of the Functional Assessment of Cancer Therapy-General Population (FACT-GP) from item responses.


scoreFACT_GP(df, id = NULL, updateItems = FALSE, keepNvalid = FALSE)



A data frame with the questionnaire items, appropriately-named.


(optional) The quoted name of a variable in df with a unique value for each row of df. If an id variable is provided here, it will also be included with the scale scores in the output data frame. This can facilitate accurate merging of the scale scores back into the input df.


(optional) Logical, if TRUE then updated versions of the items (i.e., re-coded for score calculation) will be returned in the output data frame with the scale scores. The default, FALSE, does not save any updated versions of the items in the resulting data frame. Most users will want to omit this argument or, equivalently, set it to FALSE.


(optional) Logical, if TRUE then the output data frame will have additional variables containing the number of valid, non-missing responses from each respondent to the items on a given scale (see Details). If FALSE (the default), these variables will not be in the returned data frame. Most users will want to omit this argument or, equivalently, set it to FALSE.


Given a data frame that includes all of the FACT-GP items as variables, appropriately named, this function generates all of the FACT-GP scale scores. It is crucial that the item variables in the supplied data frame are named according to FACT conventions. For example, the first physical well-being item should be named GP1, the second GP2, and so on. Please refer to the materials provided by for the particular questionnaire you are using. In particular, refer to the left margin of the official questionnaire (i.e., from for the appropriate item variable names.

Most users will want to omit the updateItems and keepNvalid arguments or, equivalently, set them both to FALSE. For more details on these arguments, see the documentation entry for scoreFACTG and FACTscorer.

Note that the FACT-GP subscale scores are not sums of the item scores. The FACT-GP is meant to be comparable to the FACT-G; however, the FACT-GP has fewer items than the FACT-G due to elimination of the FACT-G items specific to illness or treatment. Therefore, in order to make the FACT-GP scores comparable to those from the FACT-G, they are rescaled to have the same ranges as the corresponding FACT-G scores. See the Brucker et al. (2005) reference for more information.


A data frame with the following scale scores is returned:

  • PWB - Physical Well-Being subscale

  • SWB - Social/Family Well-Being subscale

  • EWB - Emotional Well-Being subscale

  • FWB - Physical Well-Being subscale


If a variable was given to the id argument, then that variable will also be in the returned data frame. Additional, relatively unimportant, variables will be returned if updateItems = TRUE or keepNvalid = TRUE.


Keep in mind that this function (and R in general) is case-sensitive.

All variables should be in numeric or integer format.

This scoring function expects missing item responses to be coded as NA, 8, or 9, and valid item responses to be coded as 0, 1, 2, 3, or 4. Any other value for any of the items will result in an error message and no scores.


FACT-GP Scoring Guidelines, available at

Brucker, P. S., Yost, K., Cashy, J., Webster, K., & Cella, D. (2005). General population and cancer patient norms for the Functional Assessment of Cancer Therapy-General (FACT-G). Evaluation & the Health Professions, 28(2), 192–211.

See Also

See FACTscorer for more comprehensive information about using the functions in this package. This function is very similar to the scoreFACTG function. See the documentation for scoreFACTG for more details on the arguments and for examples. For brevity, examples are omitted below, but can be accessed by running example(scoreFACT_GP).


raybaser/FACTscorer documentation built on March 29, 2022, 7:50 p.m.