| 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)