Description Usage Arguments Details Value Note References Examples
View source: R/sx-scoreFACT_Bplus4.R
Generates all of the scores of the Functional Assessment of Cancer Therapy - Breast Cancer (FACT-B+4, v4) for patients with Lymphedema (to be used with FACT-B) from item responses.
1 | scoreFACT_Bplus4(df, updateItems = FALSE, keepNvalid = FALSE)
|
df |
A data frame with the FACT-B+4 items, appropriately-named. |
updateItems |
Logical, if |
keepNvalid |
Logical, if |
Given a data frame that includes all of the FACT-B+4 (Version 4) items as variables, appropriately named, this function generates all of the FACT-B+4 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 http://www.facit.org for the particular questionnaire you are using. In particular, refer to the left margin of the official questionnaire (i.e., from facit.org) for the appropriate item variable names.
The original data frame is returned (optionally with modified
items if updateItems = TRUE
) with new variables corresponding to
the scored scales. If keepNvalid = TRUE
, for each scored scale an
additional variable is returned that contains the number of valid
responses each respondent made to the items making up the given scale.
These optional variables have names of the format SCALENAME_N
.
The following scale scores are returned:
Physical Well-Being subscale
Social/Family Well-Being subscale
Emotional Well-Being subscale
Physical Well-Being subscale
FACT-G Total Score (i.e., PWB+SWB+EWB+FWB)
Breast Cancer subscale
Arm subscale
FACT-B Total Score (i.e., PWB+SWB+EWB+FWB+BCS)
FACT-B Trial Outcome Index (e.g., PWB+FWB+BCS)
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.
Some item variables are reverse coded for the purpose of generating the
scale scores. The official (e.g., from http://www.facit.org) SAS
and SPSS scoring algorithms for this questionnaire automatically replace
the original items with their reverse-coded versions. This can be
confusing if you accidentally run the algorithm more than once on your
data. As its default, scoreFACT_Bplus4
DOES NOT replace any of your
original item variables with the reverse coded versions. However, for
consistentcy with the behavior of the other versions on
http://www.facit.org, the updateItems
argument is
provided. If set to TRUE
, any item that is supposed to be
reverse coded will be replaced with its reversed version in the data
frame returned by scoreFACT_Bplus4
.
FACT-B+4 Scoring Guidelines, available at http://www.facit.org
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ## Setting up item names for fake data
G_names <- c(paste0('GP', 1:7),
paste0('GS', 1:7),
paste0('GE', 1:6),
paste0('GF', 1:7))
AC_names1 <- c('B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9')
AC_names2 <- c('B3', 'B10', 'B11', 'B12', 'B13')
AC_names <- c(AC_names1, AC_names2)
itemNames <- c(G_names, AC_names)
## Generating random item responses for 8 fake respondents
set.seed(6375309)
exampleDat <- t(replicate(8, sample(0:4, size = length(itemNames), replace = TRUE)))
## Making half of respondents missing about 10% of items,
## half missing about 50%.
miss10 <- t(replicate(4, sample(c(0, 9), prob = c(0.9, 0.1),
size = length(itemNames), replace = TRUE)))
miss50 <- t(replicate(4, sample(c(0, 9), prob = c(0.5, 0.5),
size = length(itemNames), replace = TRUE)))
missMtx <- rbind(miss10, miss50)
## Using 9 as the code for missing responses
exampleDat[missMtx == 9] <- 9
exampleDat <- as.data.frame(cbind(ID = paste0('ID', 1:8),
as.data.frame(exampleDat)))
names(exampleDat) <- c('ID', itemNames)
## Returns data frame with scale scores and with original items untouched
scoredDat <- scoreFACT_Bplus4(exampleDat)
names(scoredDat)
scoredDat
## Returns data frame with scale scores, with the appropriate items
## reverse scored, and with item values of 8 and 9 replaced with NA.
## Also illustrates the effect of setting keepNvalid = TRUE.
scoredDat <- scoreFACT_Bplus4(exampleDat, updateItems = TRUE, keepNvalid = TRUE)
names(scoredDat)
## Descriptives of scored scales
summary(scoredDat[, c('PWB', 'SWB', 'EWB', 'FWB', 'FACTG',
'BCS', 'ARM', 'FACT_B_TOTAL', 'FACT_B_TOI')])
|
[1] "ID" "GP1" "GP2" "GP3" "GP4"
[6] "GP5" "GP6" "GP7" "GS1" "GS2"
[11] "GS3" "GS4" "GS5" "GS6" "GS7"
[16] "GE1" "GE2" "GE3" "GE4" "GE5"
[21] "GE6" "GF1" "GF2" "GF3" "GF4"
[26] "GF5" "GF6" "GF7" "B1" "B2"
[31] "B3" "B4" "B5" "B6" "B7"
[36] "B8" "B9" "B3" "B10" "B11"
[41] "B12" "B13" "PWB" "SWB" "EWB"
[46] "FWB" "FACTG" "BCS" "ARM" "FACT_B_TOTAL"
[51] "FACT_B_TOI"
ID GP1 GP2 GP3 GP4 GP5 GP6 GP7 GS1 GS2 GS3 GS4 GS5 GS6 GS7 GE1 GE2 GE3 GE4
1 ID1 3 3 1 2 2 3 9 1 2 1 1 1 0 2 0 2 9 2
2 ID2 4 2 2 3 1 2 1 1 0 3 4 0 0 3 3 3 2 0
3 ID3 2 1 9 0 3 3 2 2 2 1 0 4 3 3 0 2 1 1
4 ID4 2 0 2 1 2 2 2 3 2 4 2 1 1 4 3 4 2 0
5 ID5 0 9 9 0 1 9 3 9 0 4 4 9 1 9 9 9 1 9
6 ID6 9 3 9 1 9 3 1 9 9 9 0 2 9 9 2 9 9 2
7 ID7 9 9 9 9 4 1 9 4 9 4 1 3 1 1 9 1 9 4
8 ID8 9 9 0 3 9 0 4 9 4 4 9 0 9 1 1 9 2 3
GE5 GE6 GF1 GF2 GF3 GF4 GF5 GF6 GF7 B1 B2 B3 B4 B5 B6 B7 B8 B9 B3 B10 B11 B12
1 4 3 0 3 2 0 1 2 2 4 2 1 2 3 0 4 4 4 9 9 4 3
2 2 2 3 3 4 9 0 0 3 3 3 2 3 3 9 3 0 0 2 4 0 9
3 2 3 4 4 0 1 1 9 0 4 0 3 2 3 2 4 3 3 1 9 1 4
4 1 0 2 1 1 0 0 1 1 1 1 2 3 2 3 2 0 9 2 3 2 3
5 9 1 2 0 0 9 0 9 3 3 9 2 9 9 0 2 2 9 9 9 9 9
6 9 2 4 9 9 4 9 1 9 9 2 9 9 9 9 2 9 1 3 2 9 1
7 3 9 9 0 4 4 4 1 9 9 0 2 9 9 3 9 0 9 0 9 9 0
8 9 1 9 9 4 0 4 9 0 9 9 9 9 9 9 0 9 2 9 9 3 0
B13 PWB SWB EWB FWB FACTG BCS ARM FACT_B_TOTAL FACT_B_TOI
1 2 11.667 8.000 10.8 10.000 40.467 16.000 7.500 56.467 37.667
2 2 13.000 11.000 14.0 15.167 53.167 14.625 10.000 67.792 42.792
3 1 15.167 15.000 15.0 11.667 56.834 14.000 8.750 70.834 40.834
4 9 17.000 17.000 18.0 6.000 58.000 22.500 7.500 80.500 45.500
5 9 21.000 15.750 NA 7.000 NA 19.800 NA NA 47.800
6 3 14.000 NA NA NA NA NA 10.000 NA NA
7 9 NA 16.333 NA 18.200 NA NA NA NA NA
8 2 15.750 15.750 13.5 14.000 NA NA 11.667 NA NA
[1] "ID" "GP1" "GP2" "GP3"
[5] "GP4" "GP5" "GP6" "GP7"
[9] "GS1" "GS2" "GS3" "GS4"
[13] "GS5" "GS6" "GS7" "GE1"
[17] "GE2" "GE3" "GE4" "GE5"
[21] "GE6" "GF1" "GF2" "GF3"
[25] "GF4" "GF5" "GF6" "GF7"
[29] "B1" "B2" "B3" "B4"
[33] "B5" "B6" "B7" "B8"
[37] "B9" "B3" "B10" "B11"
[41] "B12" "B13" "PWB_N" "SWB_N"
[45] "EWB_N" "FWB_N" "FACTG_N" "PWB"
[49] "SWB" "EWB" "FWB" "FACTG"
[53] "BCS_N" "ARM_N" "FACT_B_TOTAL_N" "ARM"
[57] "BCS" "FACT_B_TOTAL" "FACT_B_TOI"
PWB SWB EWB FWB
Min. :11.67 Min. : 8.00 Min. :10.80 Min. : 6.00
1st Qu.:13.50 1st Qu.:13.00 1st Qu.:13.50 1st Qu.: 8.50
Median :15.17 Median :15.75 Median :14.00 Median :11.67
Mean :15.37 Mean :14.12 Mean :14.26 Mean :11.72
3rd Qu.:16.38 3rd Qu.:16.04 3rd Qu.:15.00 3rd Qu.:14.58
Max. :21.00 Max. :17.00 Max. :18.00 Max. :18.20
NA's :1 NA's :1 NA's :3 NA's :1
FACTG BCS ARM FACT_B_TOTAL
Min. :40.47 Min. :14.00 Min. : 7.500 Min. :56.47
1st Qu.:49.99 1st Qu.:14.62 1st Qu.: 7.812 1st Qu.:64.96
Median :55.00 Median :16.00 Median : 9.375 Median :69.31
Mean :52.12 Mean :17.39 Mean : 9.236 Mean :68.90
3rd Qu.:57.13 3rd Qu.:19.80 3rd Qu.:10.000 3rd Qu.:73.25
Max. :58.00 Max. :22.50 Max. :11.667 Max. :80.50
NA's :4 NA's :3 NA's :2 NA's :4
FACT_B_TOI
Min. :37.67
1st Qu.:40.83
Median :42.79
Mean :42.92
3rd Qu.:45.50
Max. :47.80
NA's :3
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.