Title: | Tailor the Exercise Plans and Visualize the Outcome for T2D Patients |
Version: | 3.0.2 |
Description: | A system for personalized exercise plan recommendations for T2D (Type 2 Diabetes) patients based on the primary outcome of HbA1c (Glycated Hemoglobin). You provide the individual's information, and 'T2DFitTailor' details the exercise plan and predicts the intervention's effectiveness. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
Imports: | dplyr,fmsb,graphics,grDevices,httr,jsonlite |
RoxygenNote: | 7.3.2 |
NeedsCompilation: | no |
Packaged: | 2025-09-10 08:13:24 UTC; DELL |
Author: | Cheng Liu [aut, cre], Xinyu Hou [aut], Bingxiang Xu [aut], Tiemin Liu [aut], Ru Wang [aut] |
Maintainer: | Cheng Liu <971264017@qq.com> |
Repository: | CRAN |
Date/Publication: | 2025-09-10 11:50:02 UTC |
Calculate PCS (Physical Component Summary) Scores
Description
This function calculates the Physical Component Summary (PCS) scores based on a set of specific questionnaire items related to physical and mental health domains. It requires a dataframe containing the required columns with valid answer ranges, and outputs a dataframe with PCS scores.
Usage
PCS_Calculation(df)
Arguments
df |
A dataframe containing the questionnaire items with answers. The dataframe should have specific columns:
|
Value
A dataframe containing the calculated PCS scores.
References
Tucker G, Adams R, Wilson D. New Australian population scoring coefficients for the old version of the SF-36 and SF-12 health status questionnaires. Qual Life Res. 2010 Sep;19(7):1069-76. doi: 10.1007/s11136-010-9658-9. Epub 2010 May 4. Erratum in: Qual Life Res. 2010 Sep;19(7):1077. PMID: 20440565.
Examples
set.seed(123)
sample_names <- c("xiaoming", "xiaohong", "xiaohua")
df <- data.frame(
row.names = sample_names,
EVGFP_rating = sample(1:5, 3, replace = TRUE),
Moderate_activities = sample(1:3, 3, replace = TRUE),
Climb_several_flights = sample(1:3, 3, replace = TRUE),
Accomplished_less_physically = sample(1:2, 3, replace = TRUE),
Limited_in_kind_physically = sample(1:2, 3, replace = TRUE),
Accomplished_less_mentally = sample(1:2, 3, replace = TRUE),
Not_careful_mentally = sample(1:2, 3, replace = TRUE),
Pain_interfere = sample(1:5, 3, replace = TRUE),
Calm = sample(1:6, 3, replace = TRUE),
Energy = sample(1:6, 3, replace = TRUE),
Felt_down = sample(1:6, 3, replace = TRUE),
Social_time = sample(1:5, 3, replace = TRUE)
)
PCS_output <- PCS_Calculation(df)
PCS_output
Tailor Exercise Plan for T2D Patients
Description
This function generates a tailored exercise plan for T2D (Type 2 Diabetes)
Arguments
input_df |
A data frame containing patient data necessary for generating a tailored exercise plan. Each column in the dataframe should be as follows (All data must be numeric.):
Note: It is crucial that the data for each of these columns is correctly formatted and accurately represents the patient's health information for the exercise plan to be effectively tailored. |
Value
A list containing two data frames: $RecommendedExercisePlan
: This data frame includes exercise plans that
are recommended based on the criterion that the intervention leads to a positive reduction in HbA1c levels,
and $AllExercisePlan
which includes all received plans.
Examples
#Create a demo dataframe
set.seed(36)
df <- data.frame(
Age = sample(39:77, 8, replace = TRUE),
Sex = sample(0:1, 8, replace = TRUE),
BMI = sample(18:31, 8, replace = TRUE),
WHtR = sample(0.4:0.6, 8, replace = TRUE),
PCS = sample(27:54, 8, replace = TRUE),
Duration_T2D = sample(1:26, 8, replace = TRUE),
Total_cholesterol = sample(7.4:14.1, 8, replace = TRUE),
HDL = sample(1:1.7, 8, replace = TRUE),
LDL = sample(2.2:4.7, 8, replace = TRUE),
VO2_Max = sample(13:45, 8, replace = TRUE),
Lung_capacity = sample(1900:4600, 8, replace = TRUE),
Back_Scratch_Test = sample(-30:8, 8, replace = TRUE))
names(df) <- c('Age', 'Sex', 'BMI', 'WHtR', 'PCS', 'Duration_T2D (year)',
'Total cholesterol (mmol/L)', 'HDL (mmol/L)', 'LDL (mmol/L)',
'VO2_Max (ml/kg/min)', 'Lung_capacity (ml)', 'Back_Scratch_Test (cm)')
rownames(df) <- c('Sample1', 'Sample2', 'Sample3', 'Sample4',
'Sample5', 'Sample6', 'Sample7', 'Sample8')
#Run the TailorExercisePlan function
demo_result <- TailorExercisePlan(df)
#View the structure of the returned list
str(demo_result)
Visualize Tailored Exercise Plan for T2D Patients
Description
This function visualizes the exercise plan recommendations for Type 2 Diabetes (T2D) patients by generating radar charts.
Arguments
demo_result |
A list containing two data frames ( |
sample_selection |
Specifies which patient samples to visualize, accepting three types of inputs:
|
sort_by |
Determines the sorting orientation for the visualization, affecting which samples are prioritized:
|
exercise_type |
Specifies the type(s) of exercises to include in the visualization. Accepts multiple input types:
|
nrow |
The number of rows in the visualization grid, which can be:
|
ncol |
The number of columns in the visualization grid, which can be:
|
show_legend |
A logical value indicating whether to display a legend in the plots. TRUE or FALSE. |
Value
The function does not return a data structure, but rather invisibly produces radar charts. These charts visualize the expected HbA1c decrease value and other relevant details for each recommended exercise plan for T2D patients.
Examples
#Create a demo dataframe
set.seed(36)
df <- data.frame(
Age = sample(39:77, 8, replace = TRUE),
Sex = sample(0:1, 8, replace = TRUE),
BMI = sample(18:31, 8, replace = TRUE),
WHtR = sample(0.4:0.6, 8, replace = TRUE),
PCS = sample(27:54, 8, replace = TRUE),
Duration_T2D = sample(1:26, 8, replace = TRUE),
Total_cholesterol = sample(7.4:14.1, 8, replace = TRUE),
HDL = sample(1:1.7, 8, replace = TRUE),
LDL = sample(2.2:4.7, 8, replace = TRUE),
VO2_Max = sample(13:45, 8, replace = TRUE),
Lung_capacity = sample(1900:4600, 8, replace = TRUE),
Back_Scratch_Test = sample(-30:8, 8, replace = TRUE))
names(df) <- c('Age', 'Sex', 'BMI', 'WHtR', 'PCS', 'Duration_T2D (year)',
'Total cholesterol (mmol/L)', 'HDL (mmol/L)', 'LDL (mmol/L)',
'VO2_Max (ml/kg/min)', 'Lung_capacity (ml)', 'Back_Scratch_Test (cm)')
rownames(df) <- c('Sample1', 'Sample2', 'Sample3', 'Sample4',
'Sample5', 'Sample6', 'Sample7', 'Sample8')
#Run the TailorExercisePlan function
demo_result <- TailorExercisePlan(df)
#Visualize the outcome from 'TailorExercisePlan' function
VisualizeTailoredExercisePlan(demo_result,sample_selection="all",sort_by="head",
exercise_type="best",nrow="auto",ncol="auto",show_legend=TRUE)
VisualizeTailoredExercisePlan(demo_result,sample_selection="Sample1",sort_by="head",
exercise_type="all",nrow="auto",ncol="auto",show_legend=TRUE)