The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

RiskScorescvd

R-CMD-check Connect

Chest pain? Calculate your cardiovascular risk score.

The goal of RiskScorescvd r package is to calculate the most commonly used cardiovascular risk scores.

We have developed five of the most commonly used risk scores with a dependency (ASCVD [PooledCohort]) making the following available:

Installation

You can install the development version of RiskScorescvd from GitHub with:

# install.packages("devtools")
devtools::install_github("dvicencio/RiskScorescvd")

Required variables for each risk score

Example

This is a basic example of how the data set should look to calculate all risk scores available in the package:

library(RiskScorescvd)
#> Loading required package: PooledCohort
# Create a data frame or list with the necessary variables
 # Set the number of rows
 num_rows <- 100
 
 # Create a large dataset with 100 rows
  cohort_xx <- data.frame(
   typical_symptoms.num = as.numeric(sample(0:6, num_rows, replace = TRUE)),
   ecg.normal = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   abn.repolarisation = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   ecg.st.depression = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   Age = as.numeric(sample(30:80, num_rows, replace = TRUE)),
   diabetes = sample(c(1, 0), num_rows, replace = TRUE),
   smoker = sample(c(1, 0), num_rows, replace = TRUE),
   hypertension = sample(c(1, 0), num_rows, replace = TRUE),
   hyperlipidaemia = sample(c(1, 0), num_rows, replace = TRUE),
   family.history = sample(c(1, 0), num_rows, replace = TRUE),
   atherosclerotic.disease = sample(c(1, 0), num_rows, replace = TRUE),
   presentation_hstni = as.numeric(sample(10:100, num_rows, replace = TRUE)),
   Gender = sample(c("male", "female"), num_rows, replace = TRUE),
   sweating = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   pain.radiation = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   pleuritic = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   palpation = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   ecg.twi = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   second_hstni = as.numeric(sample(1:200, num_rows, replace = TRUE)),
   killip.class = as.numeric(sample(1:4, num_rows, replace = TRUE)),
   systolic.bp = as.numeric(sample(40:300, num_rows, replace = TRUE)),
   heart.rate = as.numeric(sample(0:300, num_rows, replace = TRUE)),
   creat = as.numeric(sample(0:4, num_rows, replace = TRUE)),
   cardiac.arrest = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   previous.pci = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   previous.cabg = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   aspirin = as.numeric(sample(c(0, 1), num_rows, replace = TRUE)),
   number.of.episodes.24h = as.numeric(sample(0:20, num_rows, replace = TRUE)),
   total.chol = as.numeric(sample(5:100, num_rows, replace = TRUE)),
   total.hdl = as.numeric(sample(2:5, num_rows, replace = TRUE)),
   Ethnicity = sample(c("white", "black", "asian", "other"), num_rows, replace = TRUE)
 )

  str(cohort_xx)
#> 'data.frame':    100 obs. of  31 variables:
#>  $ typical_symptoms.num   : num  6 5 2 5 1 3 1 1 1 2 ...
#>  $ ecg.normal             : num  0 1 0 0 1 0 1 1 0 1 ...
#>  $ abn.repolarisation     : num  1 1 0 1 1 1 0 1 0 0 ...
#>  $ ecg.st.depression      : num  1 1 0 1 1 0 0 1 1 1 ...
#>  $ Age                    : num  70 77 51 64 77 32 70 79 56 57 ...
#>  $ diabetes               : num  1 0 1 0 0 1 0 1 0 1 ...
#>  $ smoker                 : num  1 0 0 1 0 1 0 1 1 0 ...
#>  $ hypertension           : num  0 1 1 1 1 0 1 1 1 1 ...
#>  $ hyperlipidaemia        : num  1 0 1 0 0 1 1 1 1 0 ...
#>  $ family.history         : num  1 1 0 0 1 0 1 1 0 1 ...
#>  $ atherosclerotic.disease: num  1 1 0 1 0 1 1 1 1 0 ...
#>  $ presentation_hstni     : num  10 56 97 86 78 94 63 39 63 89 ...
#>  $ Gender                 : chr  "male" "female" "female" "male" ...
#>  $ sweating               : num  1 0 1 1 1 1 0 1 1 0 ...
#>  $ pain.radiation         : num  1 0 1 0 0 0 0 1 1 0 ...
#>  $ pleuritic              : num  0 0 0 0 0 1 0 0 1 0 ...
#>  $ palpation              : num  1 1 0 0 0 1 0 0 1 0 ...
#>  $ ecg.twi                : num  1 1 0 1 0 0 1 1 0 1 ...
#>  $ second_hstni           : num  161 124 9 65 116 6 134 65 106 121 ...
#>  $ killip.class           : num  3 4 3 1 3 2 2 3 4 3 ...
#>  $ systolic.bp            : num  252 51 59 166 85 145 279 246 85 101 ...
#>  $ heart.rate             : num  61 64 23 52 294 164 135 74 244 217 ...
#>  $ creat                  : num  4 3 4 4 3 3 2 0 2 0 ...
#>  $ cardiac.arrest         : num  0 1 0 0 0 1 1 0 1 1 ...
#>  $ previous.pci           : num  1 1 1 1 1 0 1 0 0 0 ...
#>  $ previous.cabg          : num  1 0 1 0 1 0 0 0 0 1 ...
#>  $ aspirin                : num  0 1 0 1 0 1 0 1 1 1 ...
#>  $ number.of.episodes.24h : num  5 12 17 19 2 16 17 19 0 3 ...
#>  $ total.chol             : num  34 29 42 97 36 41 70 56 28 7 ...
#>  $ total.hdl              : num  5 3 3 3 2 3 2 5 3 3 ...
#>  $ Ethnicity              : chr  "other" "white" "white" "asian" ...

Calculation and Results

This is a basic example of how to calculate all risk scores available in the package and create a new data set with 12 new variables of the calculated and classified risk scores:

# Call the function with the cohort_xx to calculate all risk scores available in the package
new_data_frame <- calc_scores(data = cohort_xx)
 
# Select columns created after calculation
All_scores <- new_data_frame %>% select(HEART_score, HEART_strat, EDACS_score, EDACS_strat, GRACE_score, GRACE_strat, TIMI_score, TIMI_strat, SCORE2_score, SCORE2_strat, ASCVD_score, ASCVD_strat)

# Observe the results
head(All_scores)
#> # A tibble: 6 × 12
#> # Rowwise: 
#>   HEART_score HEART_strat   EDACS_score EDACS_strat  GRACE_score GRACE_strat  
#>         <dbl> <ord>               <dbl> <ord>              <dbl> <ord>        
#> 1           8 High risk              20 Not low risk         110 Moderate risk
#> 2          10 High risk              10 Not low risk         191 High risk    
#> 3           7 High risk              14 Not low risk         111 Moderate risk
#> 4           8 High risk              19 Not low risk          95 Moderate risk
#> 5           7 High risk              19 Not low risk         208 High risk    
#> 6           5 Moderate risk           5 Not low risk          72 Low risk     
#> # ℹ 6 more variables: TIMI_score <dbl>, TIMI_strat <ord>, SCORE2_score <dbl>,
#> #   SCORE2_strat <ord>, ASCVD_score <dbl>, ASCVD_strat <ord>

# Create a summary of them to obtain an initial idea of distribution
summary(All_scores)
#>   HEART_score           HEART_strat  EDACS_score          EDACS_strat
#>  Min.   : 2.00   Low risk     : 7   Min.   :-8.00   Low risk    : 1  
#>  1st Qu.: 5.00   Moderate risk:56   1st Qu.: 5.75   Not low risk:99  
#>  Median : 6.00   High risk    :37   Median :11.00                    
#>  Mean   : 6.02                      Mean   :10.44                    
#>  3rd Qu.: 7.00                      3rd Qu.:15.25                    
#>  Max.   :10.00                      Max.   :24.00                    
#>   GRACE_score           GRACE_strat   TIMI_score           TIMI_strat
#>  Min.   : 15.0   Low risk     :26   Min.   :1.00   Very low risk: 0  
#>  1st Qu.: 86.0   Moderate risk:38   1st Qu.:3.00   Low risk     : 6  
#>  Median :106.5   High risk    :36   Median :4.00   Moderate risk:51  
#>  Mean   :106.9                      Mean   :4.21   High risk    :43  
#>  3rd Qu.:126.5                      3rd Qu.:5.00                     
#>  Max.   :208.0                      Max.   :6.00                     
#>   SCORE2_score           SCORE2_strat  ASCVD_score            ASCVD_strat
#>  Min.   :  0.00   Very low risk: 0    Min.   :0.0000   Very low risk: 9  
#>  1st Qu.: 25.00   Low risk     : 5    1st Qu.:0.1200   Low risk     : 8  
#>  Median : 98.50   Moderate risk: 8    Median :0.3150   Moderate risk:20  
#>  Mean   : 69.38   High risk    :87    Mean   :0.4526   High risk    :63  
#>  3rd Qu.:100.00                       3rd Qu.:0.8600                     
#>  Max.   :100.00                       Max.   :1.0000

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.