Title: | Tailor the Exercise Plans and Visualize the Outcome for T2D Patients |
---|---|
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. |
Authors: | Cheng Liu [aut, cre], Xinyu Hou [aut], Bingxiang Xu [aut], Tiemin Liu [aut], Ru Wang [aut] |
Maintainer: | Cheng Liu <[email protected]> |
License: | MIT + file LICENSE |
Version: | 3.0.0 |
Built: | 2024-11-13 04:28:05 UTC |
Source: | https://github.com/cran/T2DFitTailor |
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.
PCS_Calculation(df)
PCS_Calculation(df)
df |
A dataframe containing the questionnaire items with answers. The dataframe should have specific columns:
|
A dataframe containing the calculated PCS scores.
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.
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
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
This function visualizes the exercise plan recommendations for Type 2 Diabetes (T2D) patients by generating radar charts.
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. |
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.
#Create a demo dataframe set.seed(5) 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)
#Create a demo dataframe set.seed(5) 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)
This function generates a tailored exercise plan for T2D (Type 2 Diabetes)
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. |
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.
#Create a demo dataframe set.seed(5) 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)
#Create a demo dataframe set.seed(5) 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)