The PEDALFAST (PEDiatric vALidation oF vAriableS in TBI) project was a prospective cohort study conducted at multiple American College of Surgeons freestanding level I Pediatric Trauma Centers. The cohort consists of patients under 18 years of age who were admitted to the intensive care unit (ICU) with an acute traumatic brain injury (TBI) diagnosis and Glasgow Coma Scale (GCS) score not exceeding 12 or a neurosurgical procedure (intracranial pressure [ICP] monitor, external ventricular drain [EVD], craniotomy, or craniectomy) within the first 24 hours of admission.
This data set was used for several publications:
Funded by NICHD grant number R03HD094912 we retroactively mapped the
data collected by the PEDALFAST project the Federal Interagency Traumatic Brain
Injury Research (FITBIR) data standard. The R data package
*pedalfast.data*
provides the data submitted to FITBIR as
both raw files and in ready to use R data sets.
The PEDALFAST study data were collected and managed using REDCap electronic data capture tools hosted at the University of Colorado Denver. (Harris et al. 2009) REDCap (Research Electronic Data Capture) is a secure, web-based application designed to support data capture for research studies, providing 1) an intuitive interface for validated data entry; 2) audit trails for tracking data manipulation and export procedures; 3) automated export procedures for seamless data downloads to common statistical packages; and 4) procedures for importing data from external sources.
This vignette documents the provided data set and other utilities of this package.
The *pedalfast.data*
package provides the following data
objects:
data(package = "pedalfast.data")$results[, c("Item", "Title")]
## Item Title
## [1,] "pedalfast" "PEDALFAST Data"
## [2,] "pedalfast_metadata" "PEDALFAST Metadata"
Each of these objects will be described in detail in the following sections.
The provided data sets are data.frames. Examples for working with the provided data sets will be done using base R, the tidyverse, and data.table. Click the following buttons to have the different data paradigms displayed or not while reading this vignette.
The data collected during the PEDALFAST study has been provided in
two data.frames so the end user may opt into using another paradigm such
as
*[data.table](https://cran.r-project.org/package=data.table)*
or the tidyverse. The following
will focus on use of base R methods only.
Reproduction of the examples in this vignette will require the following namespaces.
library(pedalfast.data)
Load the provided data sets into the active session via data as follows.
data(pedalfast, package = "pedalfast.data")
data(pedalfast_metadata, package = "pedalfast.data")
str(pedalfast, max.level = 0)
## 'data.frame': 388 obs. of 103 variables:
str(pedalfast_metadata, max.level = 0)
## 'data.frame': 103 obs. of 3 variables:
The pedalfast
is a data frame with each row reporting
the collected data for one subject, and each column being a unique
variable. The pedalfast_metadata
data frame is a selection
of columns from the data dictionary provided by a REDCap export of the
project. In the following you will find examples of specific utilities
provided in this package to make formatting the data easier.
Let’s look at the first three columns of pedalfast, and the first three rows of pedalfast_metadata.
head(pedalfast[, 1:3])
## studyid age female
## 1 102 1179 0
## 2 103 90 0
## 3 110 1164 1
## 4 112 1413 1
## 5 114 233 0
## 6 116 5791 0
pedalfast_metadata[1:3, ]
## variable description values
## 1 studyid PEDALFAST Patient ID <NA>
## 2 age Age, in days, at time of admission <NA>
## 3 female Is the patient female? 0, no | 1, yes
The first column of pedalfast
is the studyid, and the
first row of pedalfast_metadata
is the documentation for
the studyid. Similarly, the second column of pedalfast
and
second row of pedalfast_metadata
are for the age of the
patient. The first notable change in is in the third row of the
pedalfast_metadata
where the indicator for
female
is documented including the mapping from integer to
English: 0, no | 1, yes
The rest of this section of the vignette provides details on each of the variables in the data set and provides some examples for data use.
The PEDALFAST data was collected at multiple sites. The study id provided is a patient specific random number between 100 and 999 with no mapping to the sites. That is, you should not be able to determine which site provided a specific row of data.
variable | description | values |
---|---|---|
studyid | PEDALFAST Patient ID |
str(pedalfast$studyid)
## int [1:388] 102 103 110 112 114 116 120 122 123 124 ...
Age of the patient is reported in days.
variable | description | values |
---|---|---|
age | Age, in days, at time of admission |
summary(pedalfast$age) # in days
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 679.5 2508.5 2699.3 4635.5 6501.0
summary(pedalfast$age / 365.25) # in years
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.860 6.868 7.390 12.691 17.799
The PEDALFAST data has been submitted to the Federal Interagency Traumatic Brain
Injury Research (FITBIR) Informatics System. As part of that
submission age of the patient was to be reported as the floor of the
patients age in years with the exception of those under one year of age.
For those under one year of age the reported value was to be the
truncated three decimal age in years. For example, a patient more than
one month but less than two months would have a reported age of 0.083
(1/12), a 8 month old would have a reported age of 0.666 (8/12). Note
the truncation of the decimal. If you require the same rounding scheme
we have provided a function in this package round_age
to
provide the rounding with the truncation. The function will return age
as a character by default, a numeric value will be returned when
specified.
fitbir_ages <-
data.frame(age = pedalfast$age / 365.25,
char = round_age(pedalfast$age / 365.25),
num = round_age(pedalfast$age / 365.25, type = "numeric"))
plot(x = fitbir_ages$age,
y = fitbir_ages$num,
xlab = "Age (years)",
ylab = "FITBIR Age (Years)")
The variable female is an indicator for sex/gender. The category of female/male was made by the attending physicians or reported by the patient/caregivers. This variable was not determined by sex chromosomes genotyping. The intent was to report sex but gender, the social constructed identify of sex, might be more appropriate.
variable | description | values |
---|---|---|
female | Is the patient female? | 0, no | 1, yes |
with(pedalfast, {table(female)})
## female
## 0 1
## 239 149
with(pedalfast, {prop.table(table(female))})
## female
## 0 1
## 0.6159794 0.3840206
Three variables related to injury. The source of information for the injury and the injury mechanism (injurymech) are both categorical variables with known values and are presented as character vectors in the pedalfast data.frame. The time from injury to admission (injurytoadmit) is reported in days, if the date of injury was known.
variable | description | values |
---|---|---|
sourceinj | Source of Injury Information | |
injurytoadmit | Days from injury, if known, to admission. | |
injurymech | Injury mechanism | 1, traffic | 2, fall | 3, known or suspected abuse | 4, self-harm | 9, other |
summary(pedalfast[, c("sourceinj", "injurytoadmit", "injurymech")])
## sourceinj injurytoadmit injurymech
## Length:388 Min. : 0.000 Length:388
## Class :character 1st Qu.: 0.000 Class :character
## Mode :character Median : 0.000 Mode :character
## Mean : 1.415
## 3rd Qu.: 0.000
## Max. :366.000
## NA's :41
The injurymech is a character vector by default so the end user may build a factor as needed.
table(pedalfast$injurymech, useNA = "always")
##
## Fall Known or suspected abuse Other
## 72 91 77
## Self-harm Traffic <NA>
## 6 142 0
Several variables were collected in both the emergency department (ED) and the intensive care unit (ICU). The following are the notes for the variables collected in the ED.
The Glasgow Coma Score was assessed in one or both of the Emergency Department (ED) and the ICU. There are several variables noted here for GCS with the suffix ‘ed’ which are also reported later from the ICU with the suffix ‘icu’.
variable | description | values |
---|---|---|
gcsyned | Was a GCS obtained in the ED? | 0, no | 1, yes |
gcseyeed | ED GCS Eye | 4, spontaneous | 3, to speech | 2, to pain only | 1, no response |
gcsverbaled | ED GCS Verbal | 5, oriented, appropriate or coos and babbles | 4, confused or irritable cries | 3, inappropriate words or cries to pain | 2, incomprehensible sounds or moans to pain | 1, no response |
gcsmotored | ED GCS Motor | 6, obeys commands | 5, localizes pain or withdraws to touch | 4, withdraws from painful stimuli | 3, abnormal flexion to pain | 2, abnormal extension to pain | 1, no response/flaccid |
gcsed | ED GCS Total | [gcseyeed]+[gcsverbaled]+[gcsmotored] |
gcsetted | Was the patient intubated at the time of their ED GCS assessment? | 0, no | 1, yes |
gcsseded | Was the patient sedated at the time of their ED GCS assessment? | 0, no | 1, yes |
gcspared | Was the patient chemically paralyzed at the time of their ED GCS assessment? | 0, no | 1, yes |
gcseyeobed | Were the patient’s eyes obscured by injury, swelling, or bandage at the time of their ED GCS assessment? | 0, no | 1, yes |
summary(pedalfast[, grep("^gcs.*ed$", names(pedalfast))])
## gcsyned gcseyeed gcsverbaled gcsmotored
## Min. :0.0000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.0000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :1.0000 Median :1.000 Median :1.000 Median :4.000
## Mean :0.9835 Mean :1.677 Mean :1.595 Mean :3.326
## 3rd Qu.:1.0000 3rd Qu.:2.000 3rd Qu.:1.000 3rd Qu.:5.000
## Max. :1.0000 Max. :4.000 Max. :5.000 Max. :6.000
## NA's :24 NA's :20 NA's :20 NA's :20
## gcsed gcsetted gcsseded gcspared
## Min. : 3.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.: 3.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median : 6.000 Median :1.0000 Median :1.0000 Median :0.0000
## Mean : 6.598 Mean :0.7371 Mean :0.6158 Mean :0.1355
## 3rd Qu.: 9.000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.0000
## Max. :15.000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## NA's :20 NA's :19 NA's :21 NA's :19
## gcseyeobed
## Min. :0.00000
## 1st Qu.:0.00000
## Median :0.00000
## Mean :0.04905
## 3rd Qu.:0.00000
## Max. :1.00000
## NA's :21
GCS for the eye, verbal, and motor can be used as both numeric values
(as reported in the pedalfast data.frame) or as a categorical variable.
The *pedalfast.data*
package provides functions for quickly
mapping from the numeric values to a factor for gcs. The functions
gcs_as_integer
and gcs_as_factor
While GCS is a common assessment, the specific language used may vary. By providing these functions we are able to report the exact language used on the assessment.
Lower numeric values of GCS correspond to lower neurological functioning. To illustrate this consider, mapping the integer values 1 through 6 to the labels for the GCS scales:
data.frame(integer = 1:6,
eye = gcs_as_factor(1:6, scale = "eye"),
motor = gcs_as_factor(1:6, scale = "motor"),
verbal = gcs_as_factor(1:6, scale = "verbal")
) |>
knitr::kable(format = "html", row.names = FALSE, align = "clll") |>
kableExtra::kable_styling(bootstrap_options = "striped")
integer | eye | motor | verbal |
---|---|---|---|
1 | No response | No response/flaccid | No response |
2 | To pain only | Abnormal extension to pain | Incomprehensible sounds or moans to pain |
3 | To speech | Abnormal flexion to pain | Inappropriate words or cries to pain |
4 | Spontaneous | Withdraws from painful stimuli | Confused or irritable cries |
5 | Localizes pain or withdraws to touch | Oriented, appropriate or coos and babbles | |
6 | Obeys commands |
By default, the mapping of the integer values to factor levels will
map the the integer value of 1 to level 1. The argument
highest_first
will reverse the order of the levels. This
option has been provided to help make setting a logical reference level
for modeling. For example, say we want to estimate hospital length of
stay by the motor GCS score.
gcs_example_data <-
data.frame(los = pedalfast$hosplos,
motor_int = pedalfast$gcsmotored,
motor_f1 = gcs_as_factor(pedalfast$gcsmotored, scale = "eye"),
motor_f2 = gcs_as_factor(pedalfast$gcsmotored, scale = "eye", highest_first = TRUE))
head(gcs_example_data)
## los motor_int motor_f1 motor_f2
## 1 22 4 Spontaneous Spontaneous
## 2 24 2 To pain only To pain only
## 3 9 4 Spontaneous Spontaneous
## 4 6 5 <NA> <NA>
## 5 40 6 <NA> <NA>
## 6 36 5 <NA> <NA>
Just looking at the summary of the example data set shows the order of the factor is different
summary(gcs_example_data)
## los motor_int motor_f1 motor_f2
## Min. : 0.00 Min. :1.000 No response :134 Spontaneous : 71
## 1st Qu.: 4.00 1st Qu.:1.000 To pain only: 15 To speech : 13
## Median : 9.00 Median :4.000 To speech : 13 To pain only: 15
## Mean : 16.42 Mean :3.326 Spontaneous : 71 No response :134
## 3rd Qu.: 20.00 3rd Qu.:5.000 NA's :155 NA's :155
## Max. :345.00 Max. :6.000
## NA's :20
Thus, simple regression models will use either “no response” or “spontaneous” as the reference level. Pick the one you want to use.
summary(lm(los ~ motor_int, data = gcs_example_data))$coef
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.0227121 2.522281 7.145402 4.888884e-12
## motor_int -0.7029069 0.652196 -1.077754 2.818534e-01
summary(lm(los ~ motor_f1, data = gcs_example_data))$coef
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.537313 2.518592 5.7719993 2.530920e-08
## motor_f1To pain only 20.396020 7.937896 2.5694492 1.082070e-02
## motor_f1To speech 3.770379 8.469248 0.4451846 6.566069e-01
## motor_f1Spontaneous 6.941560 4.279624 1.6220022 1.061788e-01
summary(lm(los ~ motor_f2, data = gcs_example_data))$coef
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 21.478873 3.460040 6.2076952 2.498997e-09
## motor_f2To speech -3.171181 8.795268 -0.3605554 7.187642e-01
## motor_f2To pain only 13.454460 8.284851 1.6239833 1.057550e-01
## motor_f2No response -6.941560 4.279624 -1.6220022 1.061788e-01
Along with the three component scores of GCS, the total GCS score is provided within the pedalfast data set
summary(pedalfast$gcsed)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 3.000 3.000 6.000 6.598 9.000 15.000 20
Be careful with factors. Recall that factors are numeric vectors with the first level mapped to the value one, regardless if that is logical or not. Thus:
identical(
pedalfast$gcsed,
pedalfast$gcseyeed + pedalfast$gcsmotored + pedalfast$gcsverbaled
)
## [1] TRUE
identical(
pedalfast$gcsed,
as.integer(gcs_as_factor(pedalfast$gcseyeed, "eye")) +
as.integer(gcs_as_factor(pedalfast$gcsmotored, "motor")) +
as.integer(gcs_as_factor(pedalfast$gcsverbaled, "verbal"))
)
## [1] TRUE
identical(
pedalfast$gcsed,
as.integer(gcs_as_factor(pedalfast$gcseyeed, "eye", highest_first = TRUE)) +
as.integer(gcs_as_factor(pedalfast$gcsmotored, "motor", highest_first = TRUE)) +
as.integer(gcs_as_factor(pedalfast$gcsverbaled, "verbal", highest_first = TRUE))
)
## [1] FALSE
Disposition form the emergency department:
variable | description | values |
---|---|---|
eddisposition | Where did the patient go when they left the ED? |
table(pedalfast$eddisposition, useNA = "always")
##
## Intensive Care Unit Operating Room Other <NA>
## 313 57 2 16
If the patient had CT imaging the information is provided in one of the variables prefixed by “ct” with the exception of the time from admission to ct.
variable | description | values |
---|---|---|
admittoct | days between admission at CT imaging | Integer (days) |
ctskullfrac | Is the initial head CT positive for skull fracture? | 0, no | 1, yes |
ctce | Is the initial head CT positive for cerebral edema or brain swelling? | 0, no | 1, yes |
ctmidlineshift | Is the initial head CT positive for midline shift? | 0, no | 1, yes |
ctcompress | Is the initial head CT positive for compression or effacement of the basilar cisterns? | 0, no | 1, yes |
ctintraparhem | Is the initial head CT positive for intraparenchymal hemorrhage? | 0, no | 1, yes |
ctsubarchhem | Is the initial head CT positive for subarachnoid hemorrhage? | 0, no | 1, yes |
ctintraventhem | Is the initial head CT positive for intraventricular hemorrhage? | 0, no | 1, yes |
ctsubhematoma | Is the initial head CT positive for subdural hematoma? | 0, no | 1, yes |
ctepihematoma | Is the initial head CT positive for epidural hematoma? | 0, no | 1, yes |
pedalfast (N = 388) | |
---|---|
admittoct | |
minimum | -5 |
median (IQR) | 0 (0.00, 0.00) |
mean (sd) | 4.01 ± 37.12 |
maximum | 366 |
Unknown/Missing | 3 (0.77%) |
Findings | |
ctskullfrac | 194/383 (50.65%) |
ctce | 164/385 (42.60%) |
ctmidlineshift | 93/385 (24.16%) |
ctcompress | 96/385 (24.94%) |
ctintraventhem | 49/385 (12.73%) |
ctsubarchhem | 126/385 (32.73%) |
ctintraventhem | 49/385 (12.73%) |
ctsubhematoma | 231/385 (60.00%) |
ctepihematoma | 54/385 (14.03%) |
There are several variables groups from the ICU.
variable | description | values |
---|---|---|
sourceicu | Source of Injury Information |
table(pedalfast$sourceicu, useNA = "always")
##
## ICU MD ICU nursing flowsheet Other
## 298 75 2
## <NA>
## 13
variable | description | values |
---|---|---|
puplrcticu | Pupillary reaction on ICU admission |
table(pedalfast$puplrcticu, useNA = "always")
##
## Both Fixed Both Reactive One Fixed Unknown <NA>
## 62 284 11 27 4
GCS in the ICU are similar variables as where noted in the emergency department. Variable names are appended by “icu” for the values attended in the ICU
variable | description | values |
---|---|---|
gcsynicu | Was a GCS obtained on ICU Admission? | 0, no | 1, yes |
gcseyeicu | ICU GCS Eye | 4, spontaneous | 3, to speech | 2, to pain only | 1, no response |
gcsverbalicu | ICU GCS Verbal | 5, oriented, appropriate or coos and babbles | 4, confused or irritable cries | 3, inappropriate words or cries to pain | 2, incomprehensible sounds or moans to pain | 1, no response |
gcsmotoricu | ICU GCS Motor | 6, obeys commands | 5, localizes pain or withdraws to touch | 4, withdraws from painful stimuli | 3, abnormal flexion to pain | 2, abnormal extension to pain | 1, no response/flaccid |
gcsicu | ICU GCS Total | [gcseyeicu]+[gcsverbalicu]+[gcsmotoricu] |
gcsetticu | Was the patient intubated at the time of their ICU GCS assessment? | 0, no | 1, yes |
gcssedicu | Was the patient sedated at the time of their ICU GCS assessment? | 0, no | 1, yes |
gcsparicu | Was the patient chemically paralyzed at the time of their ICU GCS assessment? | 0, no | 1, yes |
gcseyeobicu | Were the patient’s eyes obscured by injury, swelling, or bandage at the time of their ICU GCS assessment? | 0, no | 1, yes |
summary(pedalfast[, grepl("^gcs.*icu$", names(pedalfast))])
## gcsynicu gcseyeicu gcsverbalicu gcsmotoricu
## Min. :0.0000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.0000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :1.0000 Median :1.000 Median :1.000 Median :4.000
## Mean :0.9757 Mean :1.737 Mean :1.441 Mean :3.632
## 3rd Qu.:1.0000 3rd Qu.:2.000 3rd Qu.:1.000 3rd Qu.:5.000
## Max. :1.0000 Max. :4.000 Max. :5.000 Max. :6.000
## NA's :18 NA's :8 NA's :7 NA's :8
## gcsicu gcsetticu gcssedicu gcsparicu
## Min. : 3.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.: 3.000 1st Qu.:1.0000 1st Qu.:1.0000 1st Qu.:0.0000
## Median : 6.000 Median :1.0000 Median :1.0000 Median :0.0000
## Mean : 6.811 Mean :0.8407 Mean :0.7723 Mean :0.1273
## 3rd Qu.: 9.000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.0000
## Max. :15.000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## NA's :8 NA's :5 NA's :6 NA's :11
## gcseyeobicu
## Min. :0.00000
## 1st Qu.:0.00000
## Median :0.00000
## Mean :0.09162
## 3rd Qu.:0.00000
## Max. :1.00000
## NA's :6
The variable admitttoicudc1 is the number of days from admission to discharge from the ICU. If the patient had a readmission to the ICU then the first readmission (second overall admission) occurred admittoicuadmit2 days from admission. The duration of the first readmission (second overall admission) would be the difference between admitttoicudc2 and admittoicuadmit2.
variable | description | values |
---|---|---|
admittoicudc1 | Days from admit to ICU discharge for the initial ICU admission. | integer (days) |
admittoicudc2 | Days from admit to ICU discharge for the second ICU admission (first readmission) | integer (days) |
admittoicudc3 | Days from admit to ICU discharge for the third ICU admission (second readmission) | integer (days) |
admittoicuadmit2 | Days from admit to second ICU admission (first readmission) | integer (days) |
admittoicuadmit3 | Days from admit to third ICU admission (second readmission) | integer (days) |
summary(pedalfast[, grepl("^admittoicu", names(pedalfast))])
## admittoicudc1 admittoicuadmit2 admittoicudc2 admittoicuadmit3
## Min. : 0.000 Min. : 1.00 Min. : 5.00 Min. :34
## 1st Qu.: 1.000 1st Qu.: 5.00 1st Qu.: 7.75 1st Qu.:34
## Median : 3.000 Median : 7.50 Median : 9.50 Median :34
## Mean : 6.204 Mean : 29.71 Mean : 38.18 Mean :34
## 3rd Qu.: 7.750 3rd Qu.: 19.25 3rd Qu.: 23.50 3rd Qu.:34
## Max. :379.000 Max. :380.00 Max. :382.00 Max. :34
## NA's :6 NA's :360 NA's :360 NA's :387
## admittoicudc3
## Min. :35
## 1st Qu.:35
## Median :35
## Mean :35
## 3rd Qu.:35
## Max. :35
## NA's :387
variable | description | values |
---|---|---|
ventyn | Did the patient receive invasive Mechanical Ventilation during this admission? | 0, no | 1, yes |
admittoint | Days from admit to intubation | integer (days) |
admittoext | Days from admit to extubation | integer (days) |
summary(pedalfast[, c("ventyn", "admittoint", "admittoext")])
## ventyn admittoint admittoext
## Min. :0.0000 Min. :-2.000 Min. :-2.000
## 1st Qu.:1.0000 1st Qu.: 0.000 1st Qu.: 0.000
## Median :1.0000 Median : 0.000 Median : 0.000
## Mean :0.9304 Mean : 1.436 Mean : 2.415
## 3rd Qu.:1.0000 3rd Qu.: 1.000 3rd Qu.: 3.000
## Max. :1.0000 Max. :32.000 Max. :64.000
## NA's :51 NA's :34
variable | description | values | |
---|---|---|---|
46 | icpyn1 | Did the patient receive an ICP Monitor? | 0, no | 1, yes |
47 | icptype1 | First ICP monitor type | |
48 | icptype2 | Second ICP monitor type | |
49 | icptype3 | Third ICP monitor type | |
50 | admittoicpstart1 | Days from admission to first ICP monitor | integer (days) |
51 | admittoicpstart2 | Days from admission to second ICP monitor | integer (days) |
52 | admittoicpstart3 | Days from admission to third ICP monitor | integer (days) |
53 | admittoicpend1 | Days from admission to removal of first ICP monitor | integer (days) |
54 | admittoicpend2 | Days from admission to removal of second ICP monitor | integer (days) |
55 | admittoicpend3 | Days from admission to removal of third ICP monitor | integer (days) |
## icpyn1 icptype1 icptype2 icptype3
## Min. :1 Length:131 Length:131 Length:131
## 1st Qu.:1 Class :character Class :character Class :character
## Median :1 Mode :character Mode :character Mode :character
## Mean :1
## 3rd Qu.:1
## Max. :1
## NA's :1
## admittoicpstart1 admittoicpend1 admittoicpstart2 admittoicpend2
## Min. :-1.000 Min. : 0.000 Min. :-1.000 Min. : 1.00
## 1st Qu.: 0.000 1st Qu.: 2.250 1st Qu.: 0.250 1st Qu.: 9.00
## Median : 0.000 Median : 4.000 Median : 1.500 Median :11.00
## Mean : 1.454 Mean : 5.844 Mean : 4.462 Mean :14.52
## 3rd Qu.: 1.000 3rd Qu.: 7.000 3rd Qu.: 4.000 3rd Qu.:14.00
## Max. :91.000 Max. :68.000 Max. :57.000 Max. :71.00
## NA's :1 NA's :9 NA's :105 NA's :106
## admittoicpstart3 admittoicpend3
## Min. : 1.00 Min. :7
## 1st Qu.:24.75 1st Qu.:7
## Median :48.50 Median :7
## Mean :48.50 Mean :7
## 3rd Qu.:72.25 3rd Qu.:7
## Max. :96.00 Max. :7
## NA's :129 NA's :130
There are 3
types of ICP monitors reported in the
dataset:
Intraparenchymal (Camino or bolt), Ventriculostomy (External Ventricular Drain or EVD), and Other.
icptypes <-
xtabs( ~ icptype1 + icptype2 + icptype3, data = pedalfast, addNA = TRUE) |>
as.data.frame()
icptypes <- subset(icptypes, Freq > 0)
icptype1 | icptype2 | icptype3 | Freq |
---|---|---|---|
Ventriculostomy (External Ventricular Drain or EVD) | Other | Intraparenchymal (Camino or bolt) | 1 |
Intraparenchymal (Camino or bolt) | Ventriculostomy (External Ventricular Drain or EVD) | Ventriculostomy (External Ventricular Drain or EVD) | 1 |
Intraparenchymal (Camino or bolt) | Intraparenchymal (Camino or bolt) | 4 | |
Ventriculostomy (External Ventricular Drain or EVD) | Intraparenchymal (Camino or bolt) | 4 | |
Intraparenchymal (Camino or bolt) | Other | 1 | |
Other | Other | 1 | |
Intraparenchymal (Camino or bolt) | Ventriculostomy (External Ventricular Drain or EVD) | 12 | |
Ventriculostomy (External Ventricular Drain or EVD) | Ventriculostomy (External Ventricular Drain or EVD) | 1 | |
Ventriculostomy (External Ventricular Drain or EVD) | 1 | ||
Intraparenchymal (Camino or bolt) | 74 | ||
Other | 7 | ||
Ventriculostomy (External Ventricular Drain or EVD) | 21 | ||
260 |
variable | description | values |
---|---|---|
cathtype1 | Type of first invasive vascular catheter | |
cathtype2 | Type of second invasive vascular catheter | |
cathtype3 | Type of third invasive vascular catheter | |
cathtype4 | Type of fourth invasive vascular catheter | |
admittocathstart1 | Days from admission to first catheter | integer (days) |
admittocathstart2 | Days from admission to second catheter | integer (days) |
admittocathstart3 | Days from admission to third catheter | integer (days) |
admittocathstart4 | Days from admission to fourth catheter | integer (days) |
admittocathend1 | Days from admission to removal of first catheter | integer (days) |
admittocathend2 | Days from admission to removal of second catheter | integer (days) |
admittocathend3 | Days from admission to removal of third catheter | integer (days) |
admittocathend4 | Days from admission to removal of fourth catheter | integer (days) |
First catheter
summary(
subset(pedalfast,
!is.na(cathtype1),
select = grep("cath.*1$", names(pedalfast)))
)
## cathtype1 admittocathstart1 admittocathend1
## Length:243 Min. :-2.0000 Min. : -1.000
## Class :character 1st Qu.: 0.0000 1st Qu.: 2.000
## Mode :character Median : 0.0000 Median : 4.000
## Mean : 0.4033 Mean : 6.415
## 3rd Qu.: 1.0000 3rd Qu.: 7.000
## Max. : 6.0000 Max. :368.000
## NA's :24
table(pedalfast$cathtype1)
##
## Arterial catheter
## 112
## Central venous catheter
## 115
## Peripherally inserted central catheter (PICC)
## 16
Second catheter
summary(
subset(pedalfast,
!is.na(cathtype2),
select = grep("cath.*2$", names(pedalfast)))
)
## cathtype2 admittocathstart2 admittocathend2
## Length:166 Min. :-1.000 Min. :-59.000
## Class :character 1st Qu.: 0.000 1st Qu.: 3.000
## Mode :character Median : 0.000 Median : 6.000
## Mean : 1.018 Mean : 6.622
## 3rd Qu.: 1.000 3rd Qu.: 9.000
## Max. :31.000 Max. : 93.000
## NA's :18
table(pedalfast$cathtype2)
##
## Arterial catheter
## 98
## Central venous catheter
## 52
## Peripherally inserted central catheter (PICC)
## 16
Third catheter
summary(
subset(pedalfast,
!is.na(cathtype3),
select = grep("cath.*3$", names(pedalfast)))
)
## cathtype3 admittocathstart3 admittocathend3
## Length:56 Min. :-1.000 Min. : 1.00
## Class :character 1st Qu.: 0.250 1st Qu.: 5.75
## Mode :character Median : 2.000 Median :10.00
## Mean : 3.796 Mean :12.62
## 3rd Qu.: 5.750 3rd Qu.:14.50
## Max. :19.000 Max. :94.00
## NA's :2 NA's :8
table(pedalfast$cathtype3)
##
## Arterial catheter
## 16
## Central venous catheter
## 12
## Peripherally inserted central catheter (PICC)
## 28
Fourth catheter
summary(
subset(pedalfast,
!is.na(cathtype4),
select = grep("cath.*4$", names(pedalfast)))
)
## cathtype4 admittocathstart4 admittocathend4
## Length:15 Min. : 0.000 Min. : 2.00
## Class :character 1st Qu.: 2.000 1st Qu.: 8.00
## Mode :character Median : 5.000 Median :20.00
## Mean : 9.333 Mean :22.93
## 3rd Qu.: 9.000 3rd Qu.:36.00
## Max. :37.000 Max. :57.00
table(pedalfast$cathtype4)
##
## Arterial catheter
## 4
## Central venous catheter
## 3
## Peripherally inserted central catheter (PICC)
## 8
variable | description | values |
---|---|---|
newtrachyn | Did the patient receive a new tracheostomy? | 0, no | 1, yes |
admittotrach | Days from admission to tracheostomy | integer (days) |
summary(pedalfast[pedalfast$newtrachyn == 1, c("newtrachyn", "admittotrach")])
## newtrachyn admittotrach
## Min. :1 Min. : 0.00
## 1st Qu.:1 1st Qu.: 7.50
## Median :1 Median :13.00
## Mean :1 Mean :15.70
## 3rd Qu.:1 3rd Qu.:18.75
## Max. :1 Max. :46.00
variable | description | values |
---|---|---|
newgastyn | Did the patient receive a new gastrostomy? | 0, no | 1, yes |
admittogast | Days from admission to gastrostomy | integer (days) |
summary(pedalfast[pedalfast$newgastyn == 1, c("newgastyn", "admittogast")])
## newgastyn admittogast
## Min. :1 Min. : 1.00
## 1st Qu.:1 1st Qu.:12.50
## Median :1 Median :21.00
## Mean :1 Mean :22.78
## 3rd Qu.:1 3rd Qu.:33.50
## Max. :1 Max. :50.00
variable | description | values |
---|---|---|
decomcranyn | Did the patient receive a decompressive craniectomy? | 0, no | 1, yes |
admittocrani | Days from admission to decompressive craniectomy | integer (days) |
summary(pedalfast[pedalfast$decomcranyn == 1, c("decomcranyn", "admittocrani")])
## decomcranyn admittocrani
## Min. :1 Min. :-1.0000
## 1st Qu.:1 1st Qu.: 0.0000
## Median :1 Median : 0.0000
## Mean :1 Mean : 0.9773
## 3rd Qu.:1 3rd Qu.: 1.0000
## Max. :1 Max. :10.0000
## NA's :4 NA's :4
variable | description | values |
---|---|---|
lmbrdrainyn | Did the patient receive a new lumbar drain | 0, no | 1, yes |
admittolmbdrain | Days from admission to lumbar drain | integer (days) |
summary(pedalfast[pedalfast$lmbrdrainyn == 1, c("lmbrdrainyn", "admittolmbdrain")])
## lmbrdrainyn admittolmbdrain
## Min. :1 Min. : 2.00
## 1st Qu.:1 1st Qu.: 2.75
## Median :1 Median : 4.00
## Mean :1 Mean : 7.50
## 3rd Qu.:1 3rd Qu.: 8.75
## Max. :1 Max. :20.00
variable | description | values |
---|---|---|
epihemyn | Did the patient have an epidural hematoma evacuated? | 0, no | 1, yes |
admittoedhevac | Days from admission to evacuation of epidural hematoma | integer (days) |
summary(pedalfast[pedalfast$epihemyn == 1, c("epihemyn", "admittoedhevac")])
## epihemyn admittoedhevac
## Min. :1 Min. :-1.0000
## 1st Qu.:1 1st Qu.: 0.0000
## Median :1 Median : 0.0000
## Mean :1 Mean : 0.1034
## 3rd Qu.:1 3rd Qu.: 0.0000
## Max. :1 Max. : 1.0000
variable | description | values |
---|---|---|
subhemyn | Did the patient have a subdural hematoma evacuated? | 0, no | 1, yes |
admittosdhevac | Days from admission to evacuation of subdural hematoma | integer (days) |
summary(pedalfast[pedalfast$subhemyn == 1, c("subhemyn", "admittosdhevac")])
## subhemyn admittosdhevac
## Min. :1 Min. :-1.0000
## 1st Qu.:1 1st Qu.: 0.0000
## Median :1 Median : 0.0000
## Mean :1 Mean : 0.6977
## 3rd Qu.:1 3rd Qu.: 0.5000
## Max. :1 Max. :11.0000
subset(pedalfast_metadata, grepl("^rx", variable)) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
rxhypsal | Was hypertonic saline ordered? | 0, no | 1, yes |
rxmann | Was mannitol ordered? | 0, no | 1, yes |
rxbarb | Was a barbiturate ordered? | 0, no | 1, yes |
rxinotrvas | Was an inotrope or vasopressor ordered? | 0, no | 1, yes |
summary(pedalfast[, grepl("^rx", names(pedalfast))])
## rxhypsal rxmann rxbarb rxinotrvas
## Min. :0.0000 Min. :0.000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :1.0000 Median :0.000 Median :0.0000 Median :0.0000
## Mean :0.5438 Mean :0.171 Mean :0.1068 Mean :0.3798
## 3rd Qu.:1.0000 3rd Qu.:0.000 3rd Qu.:0.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.000 Max. :1.0000 Max. :1.0000
## NA's :2 NA's :4 NA's :1
subset(pedalfast_metadata, variable %in% c("tpnyn", "admittotpn")) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
tpnyn | Did the patient receive TPN? | 0, no | 1, yes |
admittotpn | Days from admission to first TPN | integer (days) |
summary(pedalfast[pedalfast$tpnyn == 1, c("tpnyn", "admittotpn")])
## tpnyn admittotpn
## Min. :1 Min. :0.00
## 1st Qu.:1 1st Qu.:2.00
## Median :1 Median :2.50
## Mean :1 Mean :3.35
## 3rd Qu.:1 3rd Qu.:5.00
## Max. :1 Max. :9.00
## NA's :1
subset(pedalfast_metadata, variable %in% c("entnutyn", "admittoentnut")) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
entnutyn | Did the patient receive enteral nutrition? | 0, no | 1, yes |
admittoentnut | Days from admission to enteral nutrition | integer (days) |
summary(pedalfast[pedalfast$entnutyn == 1, c("entnutyn", "admittoentnut")])
## entnutyn admittoentnut
## Min. :1 Min. : 0.000
## 1st Qu.:1 1st Qu.: 1.000
## Median :1 Median : 2.000
## Mean :1 Mean : 5.973
## 3rd Qu.:1 3rd Qu.: 2.000
## Max. :1 Max. :1098.000
subset(pedalfast_metadata, variable %in% c("hosplos", "hospdisposition")) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
hosplos | Hospital length of stay (days) | integer (days) |
hospdisposition | Where did the patient go when they were discharged from the hospital? | character |
summary(pedalfast[, c("hosplos", "hospdisposition")])
## hosplos hospdisposition
## Min. : 0.00 Length:388
## 1st Qu.: 4.00 Class :character
## Median : 9.00 Mode :character
## Mean : 16.42
## 3rd Qu.: 20.00
## Max. :345.00
The dispositions are:
qwraps2::summary_table(pedalfast["hospdisposition"])
##
##
## | |pedalfast["hospdisposition"] (N = 388) |
## |:-----------------------------------------|:--------------------------------------|
## |**hospdisposition** | |
## | Discharge TO or WITH Hospice |1 (0) |
## | Home with Skilled Nursing |7 (2) |
## | Home, no new supports |236 (61) |
## | Inpatient Rehab |62 (16) |
## | Mortality |65 (17) |
## | Other |16 (4) |
## | Short-term Nursing Facility |1 (0) |
Indicator and location for cardiac arrest.
subset(pedalfast_metadata, grepl("^cardiac", variable)) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
cardiacarrestyn | Did the patient have a cardiac arrest at any time from the time of injury to the time of hospital discharge? | 0, no | 1, yes |
cardiacarrestprehosp | Cardiac arrest pre hospital | 0, no | 1, yes |
cardiacarrested | Cardiac arrest emergency department | 0, no | 1, yes |
cardiacarrestor | Cardiac arrest operating room | 0, no | 1, yes |
cardiacarrestcu | Cardiac arrest ICU | 0, no | 1, yes |
cardiacarrestoter | Cardiac arrest other | 0, no | 1, yes |
summary(pedalfast[, grepl("^cardiac", names(pedalfast))])
## cardiacarrestyn cardiacarrestprehosp cardiacarrested cardiacarrestor
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00000
## Median :0.0000 Median :0.0000 Median :0.0000 Median :0.00000
## Mean :0.1521 Mean :0.1031 Mean :0.0232 Mean :0.01031
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.00000
## cardiacarresticu cardiacarrestother
## Min. :0.00000 Min. :0.000000
## 1st Qu.:0.00000 1st Qu.:0.000000
## Median :0.00000 Median :0.000000
## Mean :0.04124 Mean :0.005155
## 3rd Qu.:0.00000 3rd Qu.:0.000000
## Max. :1.00000 Max. :1.000000
subset(pedalfast_metadata, grepl("fss", variable)) |>
knitr::kable(format = "html", row.names = FALSE) |>
kableExtra::kable_styling(bootstrap_options = "striped")
variable | description | values |
---|---|---|
admittofss | Days from admission to FSS evaluation | integer (days) |
sourcefss | Source of FSS evaluation | |
fssmental | FSS Mental Status | 1, Normal sleep/wake periods; appropriate responsiveness | 2, Sleepy but arousable to noise/touch/movement and/or periods of social nonresponsiveness | 3, Lethargic and/or irritable | 4, Minimal arousal to stimuli (stupor) | 5, Unresponsive, coma, and/or vegetative state |
fsssensory | FSS Sensory | 1, Intact hearing and vision and responsive to touch | 2, Suspected hearing or vision loss | 3, Not reactive to one of auditory stimuli or visual stimuli | 4, Not reactive to either auditory or visual stimuli | 5, Abnormal responses to pain or touch |
fsscommun | FSS Communication | 1, Appropriate noncrying vocalizations, interactive facial expressiveness, or gestures | 2, Diminished vocalization, facial expression, and/or social responsiveness | 3, Absence of attention-getting behavior | 4, No demonstration of discomfort | 5, Absence of communication |
fssmotor | FSS Motor | 1, Coordinated body movements, normal muscle control, and awareness of action and reason | 2, One limb functionally impaired | 3, Two or more limbs functionally impaired | 4, Poor head control | 5, Diffuse spasticity, paralysis, or decerebrate/decorticate posturing |
fssfeeding | FSS Feeding | 1, All food taken by mouth with age-appropriate help | 2, Nothing by mouth or need for age-inappropriate help with feeding | 3, Oral and tube feedings | 4, Parenteral nutrition with oral or tube feedings | 5, All parenteral nutrition |
fssresp | FSS Respiratory | 1, Room air and no artificial support or aids | 2, Oxygen treatment and/or suctioning | 3, Tracheostomy for airway | 4, Continuous positive airway pressure (CPAP/BIPAP) for all or part of the day and/or mechanical ventilator support for part of the day | 5, Mechanical ventilatory support for all of the day and night |
summary(pedalfast[, grepl("fss", names(pedalfast))])
## admittofss sourcefss fssmental fsssensory
## Min. : -1.00 Length:388 Min. :1.000 Min. :1.00
## 1st Qu.: 5.00 Class :character 1st Qu.:1.000 1st Qu.:1.00
## Median : 9.00 Mode :character Median :1.000 Median :1.00
## Mean : 19.97 Mean :1.637 Mean :1.41
## 3rd Qu.: 15.00 3rd Qu.:2.000 3rd Qu.:1.00
## Max. :643.00 Max. :5.000 Max. :5.00
## NA's :57 NA's :57 NA's :56
## fsscommun fssmotor fssfeeding fssresp
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :1.000 Median :1.000 Median :1.000 Median :1.000
## Mean :1.707 Mean :1.976 Mean :1.937 Mean :1.265
## 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:1.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
## NA's :57 NA's :56 NA's :56 NA's :56
The PEDALFAST data sets have been organized, submitted, and published via the Federal Interagency Traumatic Brain Injury Research (FITBIR) Informatics System.
The mapping of PEDALFAST data to FITBIR and the construction and release of this R package was funded in part by NIH grant R03HD094912.
The PEDALFAST project was funded in part by NICHD grant number K23HD074620.