Analysis Sarcopenia and PC Needs

Author

JA Calvache

Test upload

Análisis de datos de sarcopenia y necesidades de cuidados paliativos (SPARC)

Análisis exploratorio de datos

Objetivo. Estimar la asociación entre sarcopenia medida mediante el instrumento SARCF y las necesidades holísticas no satisfechas de cuidados paliativos determinadas mediante SPARC, en pacientes con enfermedades crónicas no transmisibles oncológicas y no oncológicas del Hospital universitario San José entre el 2021 y 2022. Este objetivo es de naturaleza exploratoria y no causal.

Objetivos Específicos

  • Describir las características sociodemográficas de los pacientes con enfermedades no transmisibles crónicas oncológicas y no oncológicas.
  • Describir la prevalencia de sarcopenia, definida por un puntaje en la escala SARC-F >4 puntos en pacientes con enfermedades crónicas no transmisibles.
  • Determinar la prevalencia de necesidades holísticas no satisfechas existentes en la población de pacientes con enfermedades crónicas no transmisibles y estratificar la estimación por cada uno de los 8 dominios de la herramienta SPARC-Sp.
  • Diseñar una estrategia de visualización apropiada para el reporte de las necesidades holísticas no satisfechas valoradas mediante la herramienta SPARC-Sp.

Pregunta de Investigación (PECO): ¿En los pacientes con enfermedades no transmisibles, existe asociación entre la presencia de sarcopenia medida a través del instrumento SARC-F y las necesidades no satisfechas o no resueltas, determinadas con el instrumento SPARC?

Preparacion de los datos - Librerias

library(readxl) 
library(dplyr) 

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(ggplot2) 
library(tidyr)

#install.packages("summarytools")
library(summarytools)
Warning in fun(libname, pkgname): couldn't connect to display
"/private/tmp/com.apple.launchd.iGR9EbHhvo/org.xquartz:0"
system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
#install.packages("gtsummary")
library(gtsummary)

library(gtsummary)
#install.packages("performance")
library(performance)
#install.packages("see", dependencies = TRUE)
library(see)

#install.packages("fmsb")
library(fmsb)

#install.packages("broom.helpers")
library(broom.helpers)

Attaching package: 'broom.helpers'
The following objects are masked from 'package:gtsummary':

    all_categorical, all_continuous, all_contrasts, all_dichotomous,
    all_interaction, all_intercepts

Importando datos y summary inicial

data <- read_excel("~/Rdocs/sarcopenia/SPARC_data_labels.xlsx")
New names:
• `` -> `...2`
• `` -> `...19`
• `` -> `...20`
• `` -> `...21`
• `` -> `...46`
• `` -> `...47`
• `` -> `...48`
• `` -> `...49`
• `` -> `...50`
• `` -> `...51`
• `` -> `...52`
• `` -> `...94`
• `` -> `...95`
• `` -> `...96`
• `` -> `...97`
• `` -> `...98`
• `` -> `...99`
• `` -> `...100`
• `` -> `...101`
• `` -> `...102`
• `` -> `...103`
• `` -> `...104`
• `` -> `...105`
• `` -> `...106`
• `` -> `...107`
data_orig <- data
dfSummary(data)
Data Frame Summary  
data  
Dimensions: 546 x 107  
Duplicates: 0  

--------------------------------------------------------------------------------------------------------------------------
No    Variable      Stats / Values                      Freqs (% of Valid)    Graph                  Valid      Missing   
----- ------------- ----------------------------------- --------------------- ---------------------- ---------- ----------
1     id            Mean (sd) : 273.5 (157.8)           546 distinct values   : : : : : : : : : :    546        0         
      [numeric]     min < med < max:                                          : : : : : : : : : :    (100.0%)   (0.0%)    
                    1 < 273.5 < 546                                           : : : : : : : : : :                         
                    IQR (CV) : 272.5 (0.6)                                    : : : : : : : : : :                         
                                                                              : : : : : : : : : :                         

2     ...2          Mean (sd) : 270.7 (157.5)           537 distinct values   : : . . : . . . . :    546        0         
      [numeric]     min < med < max:                                          : : : : : : : : : :    (100.0%)   (0.0%)    
                    1 < 271 < 543                                             : : : : : : : : : :                         
                    IQR (CV) : 272.5 (0.6)                                    : : : : : : : : : :                         
                                                                              : : : : : : : : : :                         

3     docum         Mean (sd) : 103627098 (502017358)   522 distinct values   :                      546        0         
      [numeric]     min < med < max:                                          :                      (100.0%)   (0.0%)    
                    287468 < 25495570 < 10074221744                           :                                           
                    IQR (CV) : 24011516 (4.8)                                 :                                           
                                                                              :                                           

4     fecha         min : 2021-11-09                    109 distinct values                     :    546        0         
      [POSIXct,     med : 2022-06-09                                                            :    (100.0%)   (0.0%)    
      POSIXt]       max : 2022-07-13                                                          : :                         
                    range : 8m 4d                                                 .         . : :                         
                                                                              . . : . . . : : : :                         

5     sitio         1. Hospital San José Popayán        545 (99.8%)           IIIIIIIIIIIIIIIIIII    546        0         
      [character]   2. Otro hospital                      1 ( 0.2%)                                  (100.0%)   (0.0%)    

6     invest        1. Camilo Cortes                     79 (14.5%)           II                     546        0         
      [character]   2. Cindy Mendieta                   239 (43.8%)           IIIIIIII               (100.0%)   (0.0%)    
                    3. Isabela Bolaños                   57 (10.4%)           II                                          
                    4. Javier Orozco                     97 (17.8%)           III                                         
                    5. Karen Rivera                      74 (13.6%)           II                                          

7     sitio_hos     1. Atención ambulatoria de O         63 (11.5%)           II                     546        0         
      [character]   2. Atención ambulatoria del           4 ( 0.7%)                                  (100.0%)   (0.0%)    
                    3. Otra área hospitalaria            69 (12.6%)           II                                          
                    4. Salas de hospitalización         410 (75.1%)           IIIIIIIIIIIIIII                             

8     etnia         1. Afrocolombiano                    28 ( 5.1%)           I                      546        0         
      [character]   2. Blanco                            71 (13.0%)           II                     (100.0%)   (0.0%)    
                    3. Indígena                          36 ( 6.6%)           I                                           
                    4. Mestizo                          411 (75.3%)           IIIIIIIIIIIIIII                             

9     genero        1. Femenino                         329 (60.3%)           IIIIIIIIIIII           546        0         
      [character]   2. Masculino                        217 (39.7%)           IIIIIII                (100.0%)   (0.0%)    

10    edad          Mean (sd) : 65 (14.8)               72 distinct values              .   :        546        0         
      [numeric]     min < med < max:                                                    : : : .      (100.0%)   (0.0%)    
                    18 < 66 < 95                                                      : : : : :                           
                    IQR (CV) : 20 (0.2)                                             . : : : : :                           
                                                                              . . : : : : : : : :                         

11    civil         1. Casado                           198 (36.3%)           IIIIIII                546        0         
      [character]   2. Separado                          24 ( 4.4%)                                  (100.0%)   (0.0%)    
                    3. Soltero                          105 (19.2%)           III                                         
                    4. Unión libre                      136 (24.9%)           IIII                                        
                    5. Viudo                             83 (15.2%)           III                                         

12    religion      1. Agnóstico                          4 ( 0.7%)                                  546        0         
      [character]   2. Ateo                               3 ( 0.5%)                                  (100.0%)   (0.0%)    
                    3. Católico                         450 (82.4%)           IIIIIIIIIIIIIIII                            
                    4. Cristiano                         63 (11.5%)           II                                          
                    5. Otro                              26 ( 4.8%)                                                       

13    g_religion    Mean (sd) : 3.7 (1.1)               0 :   9 ( 1.6%)                              546        0         
      [numeric]     min < med < max:                    1 :   8 ( 1.5%)                              (100.0%)   (0.0%)    
                    0 < 4 < 5                           2 :  53 ( 9.7%)       I                                           
                    IQR (CV) : 2 (0.3)                  3 : 171 (31.3%)       IIIIII                                      
                                                        4 : 147 (26.9%)       IIIII                                       
                                                        5 : 158 (28.9%)       IIIII                                       

14    educa         1. Bachillerato                     166 (30.4%)           IIIIII                 546        0         
      [character]   2. Ninguno                           88 (16.1%)           III                    (100.0%)   (0.0%)    
                    3. Primaria                         230 (42.1%)           IIIIIIII                                    
                    4. Técnico                           31 ( 5.7%)           I                                           
                    5. Universitario                     31 ( 5.7%)           I                                           

15    ocupa         1. AMA DE CASA                      221 (40.5%)           IIIIIIII               546        0         
      [character]   2. CESANTE                           80 (14.7%)           II                     (100.0%)   (0.0%)    
                    3. AGRICULTOR                        36 ( 6.6%)           I                                           
                    4. PENSIONADO                        35 ( 6.4%)           I                                           
                    5. COMERCIANTE                       21 ( 3.8%)                                                       
                    6. AGRICULTURA                       20 ( 3.7%)                                                       
                    7. INDEPENDIENTE                     13 ( 2.4%)                                                       
                    8. DESEMPLEADO                        9 ( 1.6%)                                                       
                    9. OFICIOS VARIOS                     8 ( 1.5%)                                                       
                    10. PENSIONADA                        8 ( 1.5%)                                                       
                    [ 70 others ]                        95 (17.4%)           III                                         

16    procede       1. Rural                            202 (37.0%)           IIIIIII                546        0         
      [character]   2. Urbana                           344 (63.0%)           IIIIIIIIIIII           (100.0%)   (0.0%)    

17    convivi       Mean (sd) : 3.5 (1.6)               11 distinct values    : : :                  546        0         
      [numeric]     min < med < max:                                          : : :                  (100.0%)   (0.0%)    
                    1 < 3 < 13                                                : : :                                       
                    IQR (CV) : 2 (0.5)                                        : : : :                                     
                                                                              : : : : :                                   

18    transpor      1. 0.5                              115 (21.1%)           IIII                   546        0         
      [character]   2. 1                                 88 (16.1%)           III                    (100.0%)   (0.0%)    
                    3. 0.25                              59 (10.8%)           II                                          
                    4. 0.17                              46 ( 8.4%)           I                                           
                    5. 0.08                              32 ( 5.9%)           I                                           
                    6. 0.3                               27 ( 4.9%)                                                       
                    7. 2                                 23 ( 4.2%)                                                       
                    8. 1.5                               21 ( 3.8%)                                                       
                    9. 0.2                               17 ( 3.1%)                                                       
                    10. 0.33                             16 ( 2.9%)                                                       
                    [ 31 others ]                       102 (18.7%)           III                                         

19    ...19         1. Algunas veces                    135 (24.7%)           IIII                   546        0         
      [character]   2. Nunca                             42 ( 7.7%)           I                      (100.0%)   (0.0%)    
                    3. Siempre                          369 (67.6%)           IIIIIIIIIIIII                               

20    ...20         1. Algunas veces                    152 (27.8%)           IIIII                  546        0         
      [character]   2. Nunca                             31 ( 5.7%)           I                      (100.0%)   (0.0%)    
                    3. Siempre                          363 (66.5%)           IIIIIIIIIIIII                               

21    ...21         1. Algunas veces                    212 (38.8%)           IIIIIII                546        0         
      [character]   2. Nunca                             58 (10.6%)           II                     (100.0%)   (0.0%)    
                    3. Siempre                          276 (50.5%)           IIIIIIIIII                                  

22    dx1           1. HIPERTENSION ARTERIAL            195 (35.7%)           IIIIIII                546        0         
      [character]   2. DIABETES MELLITUS                 42 ( 7.7%)           I                      (100.0%)   (0.0%)    
                    3. DIABETES MELLITUS TIPO II         34 ( 6.2%)           I                                           
                    4. OSTEOPOROSIS                      16 ( 2.9%)                                                       
                    5. HIPERTENSIÓN ARTERIAL             15 ( 2.7%)                                                       
                    6. ENFERMEDAD PULMONAR OBSTR         11 ( 2.0%)                                                       
                    7. CANCER DE PROSTATA                10 ( 1.8%)                                                       
                    8. ENFERMEDAD RENAL CRONICA           8 ( 1.5%)                                                       
                    9. CANCER DE MAMA                     5 ( 0.9%)                                                       
                    10. DIABETES MELLITUS TIPO II         5 ( 0.9%)                                                       
                    [ 156 others ]                      205 (37.5%)           IIIIIII                                     

23    dx2           1. HIPERTENSION ARTERIAL             54 (14.5%)           II                     372        174       
      [character]   2. ENFERMEDAD RENAL CRONICA          18 ( 4.8%)                                  (68.1%)    (31.9%)   
                    3. DIABETES MELLITUS                 16 ( 4.3%)                                                       
                    4. HIPOTIROIDISMO                    11 ( 3.0%)                                                       
                    5. DIABETES MELLITUS TIPO II          9 ( 2.4%)                                                       
                    6. ENFERMEDAD PULMONAR OBSTR          7 ( 1.9%)                                                       
                    7. OSTEOPOROSIS                       7 ( 1.9%)                                                       
                    8. ASMA                               4 ( 1.1%)                                                       
                    9. GASTRITIS                          4 ( 1.1%)                                                       
                    10. OBESIDAD                          4 ( 1.1%)                                                       
                    [ 216 others ]                      238 (64.0%)           IIIIIIIIIIII                                

24    dx_oms        1. Diabetes mellitus                102 (21.0%)           IIII                   485        61        
      [character]   2. Enfermedad cardiovascular        260 (53.6%)           IIIIIIIIII             (88.8%)    (11.2%)   
                    3. Enfermedad neoplásica            104 (21.4%)           IIII                                        
                    4. Enfermedad respiratoria c         19 ( 3.9%)                                                       

25    dx_oms_ca     1. Cancer                           104 (19.0%)           III                    546        0         
      [character]   2. No oncologica                    442 (81.0%)           IIIIIIIIIIIIIIII       (100.0%)   (0.0%)    

26    fecha_dx      Mean (sd) : 2011.5 (10.4)           42 distinct values                      :    546        0         
      [numeric]     min < med < max:                                                            :    (100.0%)   (0.0%)    
                    1960 < 2014 < 2022                                                        : :                         
                    IQR (CV) : 11 (0)                                                         : :                         
                                                                                    . . . : : : :                         

27    tratam        1. No                                36 ( 6.6%)           I                      546        0         
      [character]   2. Si tengo tratamiento             510 (93.4%)           IIIIIIIIIIIIIIIIII     (100.0%)   (0.0%)    

28    onco          1. No                               426 (78.0%)           IIIIIIIIIIIIIII        546        0         
      [character]   2. Si                               120 (22.0%)           IIII                   (100.0%)   (0.0%)    

29    onco_estad    1. Desconocido                      32 (26.7%)            IIIII                  120        426       
      [character]   2. I                                 7 ( 5.8%)            I                      (22.0%)    (78.0%)   
                    3. II                               18 (15.0%)            III                                         
                    4. III                              18 (15.0%)            III                                         
                    5. IV                               33 (27.5%)            IIIII                                       
                    6. No aplica                        12 (10.0%)            II                                          

30    onco_meta     1. Ausentes                         33 (27.5%)            IIIII                  120        426       
      [character]   2. Desconocido                      51 (42.5%)            IIIIIIII               (22.0%)    (78.0%)   
                    3. No aplica                         3 ( 2.5%)                                                        
                    4. Presentes                        33 (27.5%)            IIIII                                       

31    onco_qx       1. Checked                           53 ( 9.7%)           I                      546        0         
      [character]   2. Unchecked                        493 (90.3%)           IIIIIIIIIIIIIIIIII     (100.0%)   (0.0%)    

32    onco_radio    1. Checked                           20 ( 3.7%)                                  546        0         
      [character]   2. Unchecked                        526 (96.3%)           IIIIIIIIIIIIIIIIIII    (100.0%)   (0.0%)    

33    onco_cp       1. Checked                           26 ( 4.8%)                                  546        0         
      [character]   2. Unchecked                        520 (95.2%)           IIIIIIIIIIIIIIIIIII    (100.0%)   (0.0%)    

34    onco_cx       1. Checked                           44 ( 8.1%)           I                      546        0         
      [character]   2. Unchecked                        502 (91.9%)           IIIIIIIIIIIIIIIIII     (100.0%)   (0.0%)    

35    onco_inm      1. Checked                           10 ( 1.8%)                                  546        0         
      [character]   2. Unchecked                        536 (98.2%)           IIIIIIIIIIIIIIIIIII    (100.0%)   (0.0%)    

36    onco_alt      1. Checked                           19 ( 3.5%)                                  546        0         
      [character]   2. Unchecked                        527 (96.5%)           IIIIIIIIIIIIIIIIIII    (100.0%)   (0.0%)    

37    onco_no       1. Checked                           25 ( 4.6%)                                  546        0         
      [character]   2. Unchecked                        521 (95.4%)           IIIIIIIIIIIIIIIIIII    (100.0%)   (0.0%)    

38    ecog          1. 0                                11 ( 9.2%)            I                      120        426       
      [character]   2. 1                                32 (26.7%)            IIIII                  (22.0%)    (78.0%)   
                    3. 2                                30 (25.0%)            IIIII                                       
                    4. 3                                32 (26.7%)            IIIII                                       
                    5. 4                                13 (10.8%)            II                                          
                    6. Desconocido                       1 ( 0.8%)                                                        
                    7. No aplica                         1 ( 0.8%)                                                        

39    karno         Mean (sd) : 74.5 (18.6)             14 distinct values                . :        546        0         
      [numeric]     min < med < max:                                                      : :        (100.0%)   (0.0%)    
                    10 < 80 < 100                                                       : : :                             
                    IQR (CV) : 30 (0.2)                                             : : : : : :                           
                                                                              . . : : : : : : :                           

40    sarc1         1. Alguna                           190 (34.8%)           IIIIII                 546        0         
      [character]   2. Mucha o incapaz                  150 (27.5%)           IIIII                  (100.0%)   (0.0%)    
                    3. Ninguna                          206 (37.7%)           IIIIIII                                     

41    sarc2         1. Alguna                           168 (30.8%)           IIIIII                 546        0         
      [character]   2. Mucha, usando auxiliares         132 (24.2%)           IIII                   (100.0%)   (0.0%)    
                    3. Ninguna                          246 (45.1%)           IIIIIIIII                                   

42    sarc3         1. Alguna                           181 (33.2%)           IIIIII                 546        0         
      [character]   2. Mucha, o incapaz sin ayud        117 (21.4%)           IIII                   (100.0%)   (0.0%)    
                    3. Ninguna                          248 (45.4%)           IIIIIIIII                                   

43    sarc4         1. Alguna                           214 (39.2%)           IIIIIII                546        0         
      [character]   2. Mucha o incapaz                  177 (32.4%)           IIIIII                 (100.0%)   (0.0%)    
                    3. Ninguna                          155 (28.4%)           IIIII                                       

44    sarc5         1. 1 a 3 caídas                     199 (36.4%)           IIIIIII                546        0         
      [character]   2. 4 o más caídas                    22 ( 4.0%)                                  (100.0%)   (0.0%)    
                    3. Ninguna                          325 (59.5%)           IIIIIIIIIII                                 

45    sarcf         All NA's                                                                         0          546       
      [logical]                                                                                      (0.0%)     (100.0%)  

46    ...46         1. No                                70 (12.8%)           II                     546        0         
      [character]   2. Si                               476 (87.2%)           IIIIIIIIIIIIIIIII      (100.0%)   (0.0%)    

47    ...47         1. No                               314 (57.5%)           IIIIIIIIIII            546        0         
      [character]   2. Si                               232 (42.5%)           IIIIIIII               (100.0%)   (0.0%)    

48    ...48         1. No                               276 (50.5%)           IIIIIIIIII             546        0         
      [character]   2. Si                               270 (49.5%)           IIIIIIIII              (100.0%)   (0.0%)    

49    ...49         1. No                               399 (73.1%)           IIIIIIIIIIIIII         546        0         
      [character]   2. Si                               147 (26.9%)           IIIII                  (100.0%)   (0.0%)    

50    ...50         1. No                               462 (84.6%)           IIIIIIIIIIIIIIII       546        0         
      [character]   2. Si                                84 (15.4%)           III                    (100.0%)   (0.0%)    

51    ...51         1. No                                49 ( 9.0%)           I                      544        2         
      [character]   2. Si                               495 (91.0%)           IIIIIIIIIIIIIIIIII     (99.6%)    (0.4%)    

52    ...52         1. No                               167 (53.5%)           IIIIIIIIII             312        234       
      [character]   2. Si                               145 (46.5%)           IIIIIIIII              (57.1%)    (42.9%)   

53    s2            1. Bastante                         188 (34.4%)           IIIIII                 546        0         
      [character]   2. Mucho                            124 (22.7%)           IIII                   (100.0%)   (0.0%)    
                    3. Nada                             123 (22.5%)           IIII                                        
                    4. Un poco                          111 (20.3%)           IIII                                        

54    s3            1. Bastante                          53 ( 9.7%)           I                      546        0         
      [character]   2. Mucho                             10 ( 1.8%)                                  (100.0%)   (0.0%)    
                    3. Nada                             326 (59.7%)           IIIIIIIIIII                                 
                    4. Un poco                          157 (28.8%)           IIIII                                       

55    s4            1. Bastante                          64 (11.7%)           II                     546        0         
      [character]   2. Mucho                             27 ( 4.9%)                                  (100.0%)   (0.0%)    
                    3. Nada                             293 (53.7%)           IIIIIIIIII                                  
                    4. Un poco                          162 (29.7%)           IIIII                                       

56    s5            1. Bastante                          88 (16.2%)           III                    544        2         
      [character]   2. Mucho                             31 ( 5.7%)           I                      (99.6%)    (0.4%)    
                    3. Nada                             284 (52.2%)           IIIIIIIIII                                  
                    4. Un poco                          141 (25.9%)           IIIII                                       

57    s6            1. Bastante                          27 ( 4.9%)                                  546        0         
      [character]   2. Mucho                              4 ( 0.7%)                                  (100.0%)   (0.0%)    
                    3. Nada                             474 (86.8%)           IIIIIIIIIIIIIIIII                           
                    4. Un poco                           41 ( 7.5%)           I                                           

58    s7            1. Bastante                          80 (14.7%)           II                     546        0         
      [character]   2. Mucho                             16 ( 2.9%)                                  (100.0%)   (0.0%)    
                    3. Nada                             310 (56.8%)           IIIIIIIIIII                                 
                    4. Un poco                          140 (25.6%)           IIIII                                       

59    s8            1. Bastante                          75 (13.8%)           II                     545        1         
      [character]   2. Mucho                             13 ( 2.4%)                                  (99.8%)    (0.2%)    
                    3. Nada                             311 (57.1%)           IIIIIIIIIII                                 
                    4. Un poco                          146 (26.8%)           IIIII                                       

60    s9            1. Bastante                          78 (14.3%)           II                     546        0         
      [character]   2. Mucho                             21 ( 3.8%)                                  (100.0%)   (0.0%)    
                    3. Nada                             287 (52.6%)           IIIIIIIIII                                  
                    4. Un poco                          160 (29.3%)           IIIII                                       

61    s10           1. Bastante                          52 ( 9.5%)           I                      546        0         
      [character]   2. Mucho                             22 ( 4.0%)                                  (100.0%)   (0.0%)    
                    3. Nada                             353 (64.7%)           IIIIIIIIIIII                                
                    4. Un poco                          119 (21.8%)           IIII                                        

62    s11           1. Bastante                          99 (18.1%)           III                    546        0         
      [character]   2. Mucho                             36 ( 6.6%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             232 (42.5%)           IIIIIIII                                    
                    4. Un poco                          179 (32.8%)           IIIIII                                      

63    s12           1. Bastante                          45 ( 8.2%)           I                      546        0         
      [character]   2. Mucho                             20 ( 3.7%)                                  (100.0%)   (0.0%)    
                    3. Nada                             380 (69.6%)           IIIIIIIIIIIII                               
                    4. Un poco                          101 (18.5%)           III                                         

64    s13           1. Bastante                         156 (28.6%)           IIIII                  545        1         
      [character]   2. Mucho                             48 ( 8.8%)           I                      (99.8%)    (0.2%)    
                    3. Nada                             167 (30.6%)           IIIIII                                      
                    4. Un poco                          174 (31.9%)           IIIIII                                      

65    s14           1. Bastante                         181 (33.2%)           IIIIII                 546        0         
      [character]   2. Mucho                             55 (10.1%)           II                     (100.0%)   (0.0%)    
                    3. Nada                             118 (21.6%)           IIII                                        
                    4. Un poco                          192 (35.2%)           IIIIIII                                     

66    s15           1. Bastante                         134 (24.5%)           IIII                   546        0         
      [character]   2. Mucho                             63 (11.5%)           II                     (100.0%)   (0.0%)    
                    3. Nada                             174 (31.9%)           IIIIII                                      
                    4. Un poco                          175 (32.1%)           IIIIII                                      

67    s16           1. Bastante                         101 (18.5%)           III                    546        0         
      [character]   2. Mucho                             24 ( 4.4%)                                  (100.0%)   (0.0%)    
                    3. Nada                             223 (40.8%)           IIIIIIII                                    
                    4. Un poco                          198 (36.3%)           IIIIIII                                     

68    s17           1. Bastante                         105 (19.3%)           III                    545        1         
      [character]   2. Mucho                             26 ( 4.8%)                                  (99.8%)    (0.2%)    
                    3. Nada                             263 (48.3%)           IIIIIIIII                                   
                    4. Un poco                          151 (27.7%)           IIIII                                       

69    s18           1. Bastante                         124 (22.7%)           IIII                   546        0         
      [character]   2. Mucho                             35 ( 6.4%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             207 (37.9%)           IIIIIII                                     
                    4. Un poco                          180 (33.0%)           IIIIII                                      

70    s19           1. Bastante                          22 ( 4.0%)                                  546        0         
      [character]   2. Mucho                             11 ( 2.0%)                                  (100.0%)   (0.0%)    
                    3. Nada                             426 (78.0%)           IIIIIIIIIIIIIII                             
                    4. Un poco                           87 (15.9%)           III                                         

71    s20           1. Bastante                          91 (16.7%)           III                    546        0         
      [character]   2. Mucho                             32 ( 5.9%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             297 (54.4%)           IIIIIIIIII                                  
                    4. Un poco                          126 (23.1%)           IIII                                        

72    s21           1. Bastante                         122 (22.3%)           IIII                   546        0         
      [character]   2. Mucho                             32 ( 5.9%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             199 (36.4%)           IIIIIII                                     
                    4. Un poco                          193 (35.3%)           IIIIIII                                     

73    s22           1. Bastante                         149 (27.3%)           IIIII                  546        0         
      [character]   2. Mucho                             58 (10.6%)           II                     (100.0%)   (0.0%)    
                    3. Nada                             221 (40.5%)           IIIIIIII                                    
                    4. Un poco                          118 (21.6%)           IIII                                        

74    s23           1. Bastante                         157 (28.8%)           IIIII                  546        0         
      [character]   2. Mucho                             41 ( 7.5%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             143 (26.2%)           IIIII                                       
                    4. Un poco                          205 (37.5%)           IIIIIII                                     

75    s24           1. Bastante                         135 (24.7%)           IIII                   546        0         
      [character]   2. Mucho                             61 (11.2%)           II                     (100.0%)   (0.0%)    
                    3. Nada                             152 (27.8%)           IIIII                                       
                    4. Un poco                          198 (36.3%)           IIIIIII                                     

76    s25           1. Bastante                          83 (15.2%)           III                    546        0         
      [character]   2. Mucho                             19 ( 3.5%)                                  (100.0%)   (0.0%)    
                    3. Nada                             304 (55.7%)           IIIIIIIIIII                                 
                    4. Un poco                          140 (25.6%)           IIIII                                       

77    s26           1. Bastante                          55 (10.1%)           II                     546        0         
      [character]   2. Mucho                             19 ( 3.5%)                                  (100.0%)   (0.0%)    
                    3. Nada                             354 (64.8%)           IIIIIIIIIIII                                
                    4. Un poco                          118 (21.6%)           IIII                                        

78    s27           1. Bastante                          65 (11.9%)           II                     545        1         
      [character]   2. Mucho                             29 ( 5.3%)           I                      (99.8%)    (0.2%)    
                    3. Nada                             343 (62.9%)           IIIIIIIIIIII                                
                    4. Un poco                          108 (19.8%)           III                                         

79    s28           1. Bastante                          91 (16.7%)           III                    546        0         
      [character]   2. Mucho                             32 ( 5.9%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             266 (48.7%)           IIIIIIIII                                   
                    4. Un poco                          157 (28.8%)           IIIII                                       

80    s29           1. Bastante                          38 ( 7.0%)           I                      546        0         
      [character]   2. Mucho                             13 ( 2.4%)                                  (100.0%)   (0.0%)    
                    3. Nada                             436 (79.9%)           IIIIIIIIIIIIIII                             
                    4. Un poco                           59 (10.8%)           II                                          

81    s30           1. Bastante                          20 ( 3.7%)                                  544        2         
      [character]   2. Mucho                              3 ( 0.6%)                                  (99.6%)    (0.4%)    
                    3. Nada                             483 (88.8%)           IIIIIIIIIIIIIIIII                           
                    4. Un poco                           38 ( 7.0%)           I                                           

82    s31           1. Bastante                          41 ( 7.5%)           I                      545        1         
      [character]   2. Mucho                             46 ( 8.4%)           I                      (99.8%)    (0.2%)    
                    3. Nada                             394 (72.3%)           IIIIIIIIIIIIII                              
                    4. Un poco                           64 (11.7%)           II                                          

83    s32           1. Bastante                          84 (15.4%)           III                    546        0         
      [character]   2. Mucho                             22 ( 4.0%)                                  (100.0%)   (0.0%)    
                    3. Nada                             281 (51.5%)           IIIIIIIIII                                  
                    4. Un poco                          159 (29.1%)           IIIII                                       

84    s33           1. Bastante                          31 ( 5.7%)           I                      546        0         
      [character]   2. Mucho                              9 ( 1.6%)                                  (100.0%)   (0.0%)    
                    3. Nada                             372 (68.1%)           IIIIIIIIIIIII                               
                    4. Un poco                          134 (24.5%)           IIII                                        

85    s34           1. Bastante                         190 (34.8%)           IIIIII                 546        0         
      [character]   2. Mucho                             73 (13.4%)           II                     (100.0%)   (0.0%)    
                    3. Nada                             151 (27.7%)           IIIII                                       
                    4. Un poco                          132 (24.2%)           IIII                                        

86    s35           1. Bastante                         172 (31.5%)           IIIIII                 546        0         
      [character]   2. Mucho                             86 (15.8%)           III                    (100.0%)   (0.0%)    
                    3. Nada                             164 (30.0%)           IIIIII                                      
                    4. Un poco                          124 (22.7%)           IIII                                        

87    s36           1. Bastante                         145 (26.6%)           IIIII                  546        0         
      [character]   2. Mucho                             86 (15.8%)           III                    (100.0%)   (0.0%)    
                    3. Nada                             181 (33.2%)           IIIIII                                      
                    4. Un poco                          134 (24.5%)           IIII                                        

88    s37           1. Bastante                          84 (15.4%)           III                    546        0         
      [character]   2. Mucho                             29 ( 5.3%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             232 (42.5%)           IIIIIIII                                    
                    4. Un poco                          201 (36.8%)           IIIIIII                                     

89    s38           1. Bastante                         165 (30.2%)           IIIIII                 546        0         
      [character]   2. Mucho                             92 (16.8%)           III                    (100.0%)   (0.0%)    
                    3. Nada                             146 (26.7%)           IIIII                                       
                    4. Un poco                          143 (26.2%)           IIIII                                       

90    s39           1. Bastante                          44 ( 8.1%)           I                      546        0         
      [character]   2. Mucho                             28 ( 5.1%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             373 (68.3%)           IIIIIIIIIIIII                               
                    4. Un poco                          101 (18.5%)           III                                         

91    s40           1. Bastante                          55 (10.1%)           II                     546        0         
      [character]   2. Mucho                             33 ( 6.0%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             314 (57.5%)           IIIIIIIIIII                                 
                    4. Un poco                          144 (26.4%)           IIIII                                       

92    s41           1. Bastante                         123 (22.5%)           IIII                   546        0         
      [character]   2. Mucho                             53 ( 9.7%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             195 (35.7%)           IIIIIII                                     
                    4. Un poco                          175 (32.1%)           IIIIII                                      

93    s42           1. Bastante                         122 (22.3%)           IIII                   546        0         
      [character]   2. Mucho                             52 ( 9.5%)           I                      (100.0%)   (0.0%)    
                    3. Nada                             209 (38.3%)           IIIIIII                                     
                    4. Un poco                          163 (29.9%)           IIIII                                       

94    ...94         1. No                               281 (51.5%)           IIIIIIIIII             546        0         
      [character]   2. Si                               265 (48.5%)           IIIIIIIII              (100.0%)   (0.0%)    

95    ...95         1. No                               251 (46.1%)           IIIIIIIII              545        1         
      [character]   2. Si                               294 (53.9%)           IIIIIIIIII             (99.8%)    (0.2%)    

96    ...96         1. No                               123 (22.5%)           IIII                   546        0         
      [character]   2. Si                               423 (77.5%)           IIIIIIIIIIIIIII        (100.0%)   (0.0%)    

97    ...97         1. No                               135 (24.7%)           IIII                   546        0         
      [character]   2. Si                               411 (75.3%)           IIIIIIIIIIIIIII        (100.0%)   (0.0%)    

98    ...98         1. No                               116 (21.3%)           IIII                   545        1         
      [character]   2. Si                               429 (78.7%)           IIIIIIIIIIIIIII        (99.8%)    (0.2%)    

99    ...99         1. No                               246 (45.2%)           IIIIIIIII              544        2         
      [character]   2. Si                               298 (54.8%)           IIIIIIIIII             (99.6%)    (0.4%)    

100   ...100        1. No                               309 (56.8%)           IIIIIIIIIII            544        2         
      [character]   2. Si                               235 (43.2%)           IIIIIIII               (99.6%)    (0.4%)    

101   ...101        1. No                               198 (64.1%)           IIIIIIIIIIII           309        237       
      [character]   2. Si                               111 (35.9%)           IIIIIII                (56.6%)    (43.4%)   

102   ...102        1. NINGUNO                           87 (23.1%)           IIII                   377        169       
      [character]   2. NO                                58 (15.4%)           III                    (69.0%)    (31.0%)   
                    3. NINGUNA                           22 ( 5.8%)           I                                           
                    4. NO. A VECES ME PREOCUPA Q          2 ( 0.5%)                                                       
                    5. ¿CÓMO VA A TERMINAR ESTO?          1 ( 0.3%)                                                       
                    6. ¿CUAL ES MI PRONTOSTICO?           1 ( 0.3%)                                                       
                    7. ¿QUÉ IMPACTO HAN TENIDO E          1 ( 0.3%)                                                       
                    8. ¿QUÉ PASA CON LA ENFERMED          1 ( 0.3%)                                                       
                    9. ¿QUE VA A PASAR CONMIGO?           1 ( 0.3%)                                                       
                    10. A LOS PACIENTES LES VULNE         1 ( 0.3%)                                                       
                    [ 202 others ]                      202 (53.6%)           IIIIIIIIII                                  

103   ...103        1. NINGUNO                          133 (46.0%)           IIIIIIIII              289        257       
      [character]   2. NINGUNA                           45 (15.6%)           III                    (52.9%)    (47.1%)   
                    3. ME GUSTARÍA SABER MÁS SOB          2 ( 0.7%)                                                       
                    4. ¿ CUÁNDO VOLVERÉ A TRABAJ          1 ( 0.3%)                                                       
                    5. ¿A FUTURO QUÉ VA A PASAR?          1 ( 0.3%)                                                       
                    6. ¿CÓMO COSTEAR LOS GASTOS           1 ( 0.3%)                                                       
                    7. ¿CÓMO QUEDÓ FUNCIONANDO M          1 ( 0.3%)                                                       
                    8. ¿CÓMO SALIERON LOS EXAMEN          1 ( 0.3%)                                                       
                    9. ¿CÓMO SALIERON LOS EXAMEN          1 ( 0.3%)                                                       
                    10. ¿COMO SERÁ LA CIRUGÍA?            1 ( 0.3%)                                                       
                    [ 102 others ]                      102 (35.3%)           IIIIIII                                     

104   ...104        1. ¿CÓMO HAN SALIDO LOS EXAM         1 ( 4.2%)                                   24         522       
      [character]   2. ¿CÓMO PUEDO CAMBIAR DE PO         1 ( 4.2%)                                   (4.4%)     (95.6%)   
                    3. ¿CUÁL ES MI DIAGNÓSTICO?          1 ( 4.2%)                                                        
                    4. ¿CUÁL VA A SER EL TRATAMI         1 ( 4.2%)                                                        
                    5. ¿CUANDO LE DARÁN SALIDA?          1 ( 4.2%)                                                        
                    6. ¿LE VAN A RETIRAR ALGUNO          1 ( 4.2%)                                                        
                    7. ¿POR QUÉ PASÓ TANTO TIEMP         1 ( 4.2%)                                                        
                    8. ¿QUE PODRÍA HACER EN LA C         1 ( 4.2%)                                                        
                    9. ¿SI EL MEDICAMENTE NO SE          1 ( 4.2%)                                                        
                    10. A DONDE LLEVO EL TENSIOME        1 ( 4.2%)                                                        
                    [ 14 others ]                       14 (58.3%)            IIIIIIIIIII                                 

105   ...105        1. ¿CUÁL ES LA MÁS QUE LE AC        1 (16.7%)             III                    6          540       
      [character]   2. CUAL ES EL PROPOSITO DE L        1 (16.7%)             III                    (1.1%)     (98.9%)   
                    3. CUAL SERIA EL PROCESO A S        1 (16.7%)             III                                         
                    4. EL PIE ESTÁ VOLANDO, NO L        1 (16.7%)             III                                         
                    5. LA TERAPEUTA LE PREOCUPAB        1 (16.7%)             III                                         
                    6. QUE TODO SER HUMANO QUE E        1 (16.7%)             III                                         

106   ...106        Mean (sd) : 5.6 (2.9)               11 distinct values            :              545        1         
      [numeric]     min < med < max:                                          .       : .   :        (99.8%)    (0.2%)    
                    0 < 6 < 10                                                :       : : : :   .                         
                    IQR (CV) : 4 (0.5)                                        :   : . : : : : : :                         
                                                                              : : : : : : : : : :                         

107   ...107        1. Complete                         545 (100.0%)          IIIIIIIIIIIIIIIIIIII   545        1         
      [character]                                                                                    (99.8%)    (0.2%)    
--------------------------------------------------------------------------------------------------------------------------

Recodificando sarc y sparc

vars1 <- c("sarc1","sarc2","sarc3","sarc4","sarc5")

data[vars1] <- lapply(data[vars1], function(x) {
  x <- as.character(x)
    recode <- c(
    "Ninguna" = 0,
    "Alguna" = 1,
    "1 a 3 caídas" = 1
  )
  x_num <- recode[x]
  x_num[is.na(x_num) & !is.na(x)] <- 2
  as.numeric(x_num)
})

vars2 <- c("s2","s3","s4","s5","s6","s7","s8","s9","s10","s11",
           "s12","s13","s14","s15","s16","s17","s18","s19","s20",
           "s21","s22","s23","s24","s25","s26","s27","s28","s29",
           "s30","s31","s32","s33","s34","s35","s36","s37","s38",
           "s39","s40","s41","s42")

data[vars2] <- lapply(data[vars2], function(x) {
  x <- as.character(x)
  x[x == "Nada"]      <- 0
  x[x == "Un poco"]   <- 1
  x[x == "Bastante"]  <- 2
  x[x == "Mucho"]     <- 3
  as.numeric(x)
})

data$genero <- factor(data$genero)
data$procede <- factor(data$procede)
data$educa <- factor(data$educa)
data$dx_oms_ca <- factor(data$dx_oms_ca)


levels(data$dx_oms_ca)
[1] "Cancer"        "No oncologica"
data$dx_oms_ca <- relevel(data$dx_oms_ca, ref = "No oncologica")

data$educa <- relevel(data$educa, ref = "Ninguno")
data$genero <- relevel(data$genero, ref = "Masculino")
data$procede <- relevel(data$procede, ref = "Urbana")

Calculando nuevas variables (sarc_tot y sparc_dominios)

data <- data %>%
  rowwise() %>%
  mutate(sarc_tot = sum(c_across(all_of(vars1)), na.rm = TRUE
  ))

data <- data %>%
  rowwise() %>%
  mutate(sparc_fis = sum(c_across(s2:s22), na.rm = TRUE),
         sparc_psic = sum(c_across(s23:s31), na.rm = TRUE),
         sparc_rel = sum(c_across(s32:s33), na.rm = TRUE),
         sparc_inde = sum(c_across(s34:s36), na.rm = TRUE),
         sparc_fami = sum(c_across(s37:s40), na.rm = TRUE),
         sparc_tra = sum(c_across(s41:s42), na.rm = TRUE)
  )

vars3 <- c("sparc_fis", "sparc_psic", "sparc_rel", 
          "sparc_inde", "sparc_fami", "sparc_tra")

summary(data[, vars3])
   sparc_fis       sparc_psic       sparc_rel       sparc_inde   
 Min.   : 0.00   Min.   : 0.000   Min.   :0.000   Min.   :0.000  
 1st Qu.:10.00   1st Qu.: 2.250   1st Qu.:0.000   1st Qu.:1.000  
 Median :16.00   Median : 5.000   Median :1.000   Median :4.000  
 Mean   :16.93   Mean   : 5.945   Mean   :1.128   Mean   :3.918  
 3rd Qu.:22.00   3rd Qu.: 8.000   3rd Qu.:2.000   3rd Qu.:6.000  
 Max.   :50.00   Max.   :26.000   Max.   :6.000   Max.   :9.000  
   sparc_fami       sparc_tra    
 Min.   : 0.000   Min.   :0.000  
 1st Qu.: 1.000   1st Qu.:0.000  
 Median : 3.000   Median :2.000  
 Mean   : 3.353   Mean   :2.093  
 3rd Qu.: 5.000   3rd Qu.:4.000  
 Max.   :12.000   Max.   :6.000  
colSums(data[, vars3], na.rm = TRUE)
 sparc_fis sparc_psic  sparc_rel sparc_inde sparc_fami  sparc_tra 
      9243       3246        616       2139       1831       1143 

##Ponderacion de los dominios de SPARC a 1

data <- data %>%
  mutate(
    sparc_fis_p  = sparc_fis  / 63 * 100,
    sparc_psic_p = sparc_psic / 27 * 100,
    sparc_rel_p  = sparc_rel  / 6 * 100,
    sparc_inde_p = sparc_inde / 9 * 100,
    sparc_fami_p = sparc_fami / 12 * 100,
    sparc_tra_p  = sparc_tra  / 6 * 100
  )

data <- data %>%
  mutate(
    across(
      ends_with("_p"),
      ~ round(.x, 1)
    )
  )

summary(data[, c("sparc_fis_p","sparc_psic_p","sparc_rel_p", "sparc_inde_p","sparc_fami_p","sparc_tra_p")])
  sparc_fis_p     sparc_psic_p     sparc_rel_p      sparc_inde_p   
 Min.   : 0.00   Min.   : 0.000   Min.   :  0.00   Min.   :  0.00  
 1st Qu.:15.90   1st Qu.: 8.325   1st Qu.:  0.00   1st Qu.: 11.10  
 Median :25.40   Median :18.500   Median : 16.70   Median : 44.40  
 Mean   :26.87   Mean   :22.005   Mean   : 18.81   Mean   : 43.53  
 3rd Qu.:34.90   3rd Qu.:29.600   3rd Qu.: 33.30   3rd Qu.: 66.70  
 Max.   :79.40   Max.   :96.300   Max.   :100.00   Max.   :100.00  
  sparc_fami_p     sparc_tra_p    
 Min.   :  0.00   Min.   :  0.00  
 1st Qu.:  8.30   1st Qu.:  0.00  
 Median : 25.00   Median : 33.30  
 Mean   : 27.95   Mean   : 34.89  
 3rd Qu.: 41.70   3rd Qu.: 66.70  
 Max.   :100.00   Max.   :100.00  
par(las = 2)
boxplot(
  data[, c("sparc_fis_p","sparc_psic_p","sparc_rel_p",
           "sparc_inde_p","sparc_fami_p","sparc_tra_p")],
  main = "Boxplot de dominios SPARC ponderados",
  ylab = "Puntaje ponderado",
  names = c("D Físico", "D Psicológico", "D Relacional",
            "D Independencia", "D Familiar", "D Tratamiento"),
  col = c("lightblue", "lightgreen", "lightpink", 
          "lightyellow", "lightgray", "lightcoral")
)

##Visualizacion inicial Sarcopenia

ggplot(data, aes(x = sarc_tot)) +
  geom_histogram(aes(y = ..density..), binwidth = 1, fill = "lightblue", color = "black") +
  geom_density(color = "red", size = 1) +
  labs(title = "Histograma de sarc_tot con línea de densidad",
       x = "sarc_tot",
       y = "Densidad") +
  theme_minimal()
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
ℹ Please use `after_stat(density)` instead.

—————————————————————————–

Objetivo 1. Describir las características sociodemográficas de los pacientes con enfermedades no transmisibles crónicas oncológicas y no oncológicas.

data <- data %>%
  mutate(transpor = as.numeric(as.character(transpor)))

data %>%
  tbl_summary(include = c(genero, etnia, edad, civil, religion, educa, procede, convivi, transpor),
              by=dx_oms_ca, missing = "no", sort = all_categorical() ~ "frequency") %>%
              add_n() %>%
              add_overall()
Characteristic N Overall
N = 5461
No oncologica
N = 4421
Cancer
N = 1041
genero 546


    Femenino
329 (60%) 274 (62%) 55 (53%)
    Masculino
217 (40%) 168 (38%) 49 (47%)
etnia 546


    Mestizo
411 (75%) 335 (76%) 76 (73%)
    Blanco
71 (13%) 56 (13%) 15 (14%)
    Indígena
36 (6.6%) 27 (6.1%) 9 (8.7%)
    Afrocolombiano
28 (5.1%) 24 (5.4%) 4 (3.8%)
edad 546 66 (56, 76) 67 (57, 76) 65 (49, 74)
civil 546


    Casado
198 (36%) 154 (35%) 44 (42%)
    Unión libre
136 (25%) 117 (26%) 19 (18%)
    Soltero
105 (19%) 80 (18%) 25 (24%)
    Viudo
83 (15%) 69 (16%) 14 (13%)
    Separado
24 (4.4%) 22 (5.0%) 2 (1.9%)
religion 546


    Católico
450 (82%) 370 (84%) 80 (77%)
    Cristiano
63 (12%) 43 (9.7%) 20 (19%)
    Otro
26 (4.8%) 24 (5.4%) 2 (1.9%)
    Agnóstico
4 (0.7%) 3 (0.7%) 1 (1.0%)
    Ateo
3 (0.5%) 2 (0.5%) 1 (1.0%)
educa 546


    Primaria
230 (42%) 192 (43%) 38 (37%)
    Bachillerato
166 (30%) 136 (31%) 30 (29%)
    Ninguno
88 (16%) 71 (16%) 17 (16%)
    Técnico
31 (5.7%) 21 (4.8%) 10 (9.6%)
    Universitario
31 (5.7%) 22 (5.0%) 9 (8.7%)
procede 546


    Urbana
344 (63%) 271 (61%) 73 (70%)
    Rural
202 (37%) 171 (39%) 31 (30%)
convivi 546 3.00 (2.00, 4.00) 3.00 (2.00, 4.00) 3.00 (2.00, 4.00)
transpor 546 0.50 (0.25, 1.00) 0.50 (0.25, 1.00) 0.32 (0.17, 1.00)
1 n (%); Median (Q1, Q3)

Objetivo 2. Describir la prevalencia de sarcopenia, definida por un puntaje en la escala SARC-F >4 puntos en pacientes con enfermedades crónicas no transmisibles.

data <- data %>%
  mutate(
    sarc_tot_cat = if_else(
      sarc_tot > 4,
      1L,  # Sarcopenia
      0L   # No sarcopenia
    )
  )

data %>%
  tbl_summary(include = c(sarc_tot, sarc_tot_cat),
              by=dx_oms_ca, missing = "no", sort = all_categorical() ~ "frequency") %>%
              add_n() %>%
              add_overall()
Characteristic N Overall
N = 5461
No oncologica
N = 4421
Cancer
N = 1041
sarc_tot 546 4.00 (1.00, 6.00) 3.50 (1.00, 6.00) 4.00 (2.00, 7.00)
sarc_tot_cat 546 221 (40%) 176 (40%) 45 (43%)
1 Median (Q1, Q3); n (%)
data %>%
  tbl_summary(
    include = c(sarc_tot_cat),
    by = dx_oms_ca,
    missing = "no",
    sort = all_categorical() ~ "frequency",
    statistic = all_categorical() ~ "{p}%"
  ) %>%
  add_ci() %>%
  add_n() %>%
  add_overall()
Characteristic N Overall
N = 5461
No oncologica
N = 4421
95% CI Cancer
N = 1041
95% CI
sarc_tot_cat 546 40% 40% 35%, 45% 43% 34%, 53%
1
Abbreviation: CI = Confidence Interval
ggplot(data, aes(x = sarc_tot, fill = as.factor(dx_oms_ca))) +
  geom_density(alpha = 0.5) +
  labs(title = "Distribución de sarc_tot por dx_oms_ca",
       x = "sarc_tot",
       y = "Densidad",
       fill = "dx_oms_ca") +
  theme_minimal()

Objetivo 3. Determinar la prevalencia de necesidades holísticas no satisfechas existentes en la población de pacientes con enfermedades crónicas no transmisibles y estratificar la estimación por cada uno de los 8 dominios de la herramienta SPARC-Sp.

class(data$sparc_rel_p)
[1] "numeric"
data %>%
  tbl_summary(
    include = c(
      sparc_fis_p, sparc_psic_p, sparc_rel_p,
      sparc_inde_p, sparc_fami_p, sparc_tra_p
    ),
    by = dx_oms_ca,
    missing = "no",
    statistic = all_continuous() ~ "{median} ({p25}, {p75})",
    type = c(
      sparc_rel_p ~ "continuous",
      sparc_tra_p ~ "continuous"
    )
  ) %>%
  add_n() %>%
  add_p() %>%
  add_overall()
Characteristic N Overall
N = 5461
No oncologica
N = 4421
Cancer
N = 1041
p-value2
sparc_fis_p 546 25 (16, 35) 24 (14, 33) 32 (24, 44) <0.001
sparc_psic_p 546 19 (7, 30) 15 (7, 30) 22 (15, 37) <0.001
sparc_rel_p 546 17 (0, 33) 17 (0, 33) 17 (0, 33) 0.002
sparc_inde_p 546 44 (11, 67) 44 (11, 67) 50 (22, 67) 0.2
sparc_fami_p 546 25 (8, 42) 25 (8, 42) 25 (8, 42) 0.8
sparc_tra_p 546 33 (0, 67) 33 (0, 50) 33 (17, 67) 0.004
1 Median (Q1, Q3)
2 Wilcoxon rank sum test
data %>%
  tbl_summary(
    include = c(
      sparc_fis_p, sparc_psic_p, sparc_rel_p,
      sparc_inde_p, sparc_fami_p, sparc_tra_p
    ),
    by = sarc_tot_cat,
    missing = "no",
    statistic = all_continuous() ~ "{median} ({p25}, {p75})",
    type = c(
      sparc_rel_p ~ "continuous",
      sparc_tra_p ~ "continuous"
    )
  ) %>%
  add_n() %>%
  add_p() %>%
  add_overall()
Characteristic N Overall
N = 5461
0
N = 3251
1
N = 2211
p-value2
sparc_fis_p 546 25 (16, 35) 22 (13, 32) 30 (22, 41) <0.001
sparc_psic_p 546 19 (7, 30) 15 (7, 26) 22 (11, 37) <0.001
sparc_rel_p 546 17 (0, 33) 17 (0, 33) 17 (0, 33) 0.018
sparc_inde_p 546 44 (11, 67) 33 (11, 56) 56 (33, 67) <0.001
sparc_fami_p 546 25 (8, 42) 25 (8, 33) 25 (17, 42) <0.001
sparc_tra_p 546 33 (0, 67) 33 (0, 50) 33 (17, 67) <0.001
1 Median (Q1, Q3)
2 Wilcoxon rank sum test
ggplot(data, aes(x = as.factor(sarc_tot_cat), y = sparc_fis_p, fill = as.factor(sarc_tot_cat))) +
  geom_boxplot() +
  labs(title = "Boxplot de Dominio Físico de SPARC por Sarcopenia",
       x = "Sarcopenia (0=No, 1=Sí)",
       y = "Puntaje Dominio Físico (%)") +
  theme_minimal() +
  scale_fill_manual(values = c("lightblue", "lightcoral"), name = "Sarcopenia", labels = c("No", "Sí"))

Objetivo 3.1 Explorar la asociacion entre Sarcopenia y los dominios de SPARC.

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats   1.0.1     ✔ readr     2.2.0
✔ lubridate 1.9.5     ✔ stringr   1.6.0
✔ purrr     1.2.1     ✔ tibble    3.3.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
✖ tibble::view()  masks summarytools::view()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data_long <- data %>%
  pivot_longer(
    cols = c(
      sparc_fis_p, sparc_psic_p, sparc_rel_p,
      sparc_inde_p, sparc_fami_p, sparc_tra_p
    ),
    names_to = "dominio",
    values_to = "puntaje"
  )

library(ggpubr)

ggplot(
  data_long,
  aes(
    x = as.factor(sarc_tot_cat),
    y = puntaje,
    fill = as.factor(sarc_tot_cat)
  )
) +
  geom_boxplot() +
  facet_wrap(~ dominio, scales = "free_y") +
  stat_compare_means(
    method = "wilcox.test",
    label = "p.format"
  ) +
  labs(
    title = "Distribución de los dominios SPARC según sarcopenia",
    x = "Sarcopenia (0 = No, 1 = Sí)",
    y = "Puntaje SPARC (%)"
  ) +
  theme_minimal() +
  scale_fill_manual(
    values = c("lightblue", "lightcoral"),
    name = "Sarcopenia",
    labels = c("No", "Sí")
  ) +
  theme(
    legend.position = "bottom",
    strip.text = element_text(face = "bold")
  )

par(mfrow = c(2, 3))  # Configura la disposición de los gráficos
hist(data$sparc_fis_p, main = "Histograma Sparc Físico", xlab = "Sparc Físico (%)", col = "lightblue")
hist(data$sparc_psic_p, main = "Histograma Sparc Psicológico
", xlab = "Sparc Psicológico (%)", col = "lightgreen")
hist(data$sparc_rel_p, main = "Histograma Sparc Relacional", xlab = "Sparc Relacional (%)", col = "lightpink")
hist(data$sparc_inde_p, main = "Histograma Sparc Independencia",
     xlab = "Sparc Independencia (%)", col = "lightyellow") 
hist(data$sparc_fami_p, main = "Histograma Sparc Familiar",
     xlab = "Sparc Familiar (%)", col = "lightgray")
hist(data$sparc_tra_p, main = "Histograma Sparc Tratamiento",
     xlab = "Sparc Tratamiento (%)", col = "lightcoral")

shapiro.test(data$sparc_fis_p)

    Shapiro-Wilk normality test

data:  data$sparc_fis_p
W = 0.9726, p-value = 1.415e-08
shapiro.test(data$sparc_psic_p)

    Shapiro-Wilk normality test

data:  data$sparc_psic_p
W = 0.90219, p-value < 2.2e-16
shapiro.test(data$sparc_rel_p)

    Shapiro-Wilk normality test

data:  data$sparc_rel_p
W = 0.82989, p-value < 2.2e-16
shapiro.test(data$sparc_inde_p)

    Shapiro-Wilk normality test

data:  data$sparc_inde_p
W = 0.92723, p-value = 1.299e-15
shapiro.test(data$sparc_fami_p)

    Shapiro-Wilk normality test

data:  data$sparc_fami_p
W = 0.91519, p-value < 2.2e-16
shapiro.test(data$sparc_tra_p)

    Shapiro-Wilk normality test

data:  data$sparc_tra_p
W = 0.88908, p-value < 2.2e-16
data <- data %>%
  mutate(sparc_total_p = sparc_fis_p + sparc_psic_p + sparc_rel_p + sparc_inde_p + sparc_fami_p + sparc_tra_p)

hist(data$sparc_total_p)

shapiro.test(data$sparc_total_p)

    Shapiro-Wilk normality test

data:  data$sparc_total_p
W = 0.97065, p-value = 5.413e-09
summary(data$sparc_total_p)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   99.22  162.85  174.04  235.03  499.40 
rng <- range(data$sparc_total_p, na.rm = TRUE)
data <- data %>%
  mutate(
    sparc_total_st = (sparc_total_p - rng[1]) / (rng[2] - rng[1]) * 100
  )

hist(data$sparc_total_st)

ggplot(data, aes(sample = sparc_total_p)) +
  stat_qq() +
  stat_qq_line(color = "red") +
  labs(
    title = "Q–Q plot de normalidad del puntaje total SPARC",
    x = "Cuantiles teóricos",
    y = "Cuantiles observados"
  ) +
  theme_minimal()

ggplot(data, aes(x = as.factor(sarc_tot_cat), y = sparc_total_st, fill = as.factor(sarc_tot_cat))) +
  geom_boxplot() +
  labs(title = "Boxplot de Puntaje Total SPARC por Sarcopenia",
       x = "Sarcopenia (0=No, 1=Sí)",
       y = "Puntaje Total SPARC (%)") +
  theme_minimal() +
  scale_fill_manual(values = c("lightblue", "lightcoral"), name = "Sarcopenia", labels = c("No", "Sí"))

ggplot(data, aes(x = sarc_tot, y = sparc_total_st)) +
  geom_point(alpha = 0.6, color = "blue") +
  geom_smooth(method = "lm", color = "red", se = FALSE) +
  labs(title = "Diagrama de dispersión de Puntaje Total SPARC vs Sarcopenia",
       x = "sarc_tot",
       y = "Puntaje Total SPARC (%)") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

Modelo lineal univariado

data %>%
  tbl_summary(
    include = c(
      sparc_total_st
    ),
    by = sarc_tot_cat,
    missing = "no",
    statistic = all_continuous() ~ "{median} ({p25}, {p75})",
    type = c(
      sparc_total_st ~ "continuous"
    )
  ) %>%
  add_n() %>%
  add_p() %>%
  add_overall()
Characteristic N Overall
N = 5461
0
N = 3251
1
N = 2211
p-value2
sparc_total_st 546 33 (20, 47) 28 (16, 41) 39 (28, 56) <0.001
1 Median (Q1, Q3)
2 Wilcoxon rank sum test
model1 <- lm(sparc_total_st ~ sarc_tot_cat, data = data)
summary(model1)

Call:
lm(formula = sparc_total_st ~ sarc_tot_cat, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-40.834 -13.957  -2.249  12.303  57.905 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)    29.924      1.029  29.068  < 2e-16 ***
sarc_tot_cat   12.171      1.618   7.522 2.24e-13 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 18.56 on 544 degrees of freedom
Multiple R-squared:  0.09421,   Adjusted R-squared:  0.09255 
F-statistic: 56.58 on 1 and 544 DF,  p-value: 2.242e-13
tbl_regression(model1)
Characteristic Beta 95% CI p-value
sarc_tot_cat 12 9.0, 15 <0.001
Abbreviation: CI = Confidence Interval
check_model(model1)

model_performance(model1)
# Indices of model performance

AIC    |   AICc |    BIC |    R2 | R2 (adj.) |   RMSE |  Sigma
--------------------------------------------------------------
4743.1 | 4743.2 | 4756.0 | 0.094 |     0.093 | 18.524 | 18.558

El conjunto mínimo suficiente para estimar el efecto total de la sarcopenia en las necesidades paliativas está compuesto por: Edad, Estadio del cáncer, Educación, Compañeros de casa, Diagnóstico principal, Estado civil, Sexo, Área de origen y U.

model2 <- lm(sparc_total_st ~ sarc_tot_cat + dx_oms_ca + edad + educa + convivi + civil + genero + procede, data = data)
summary(model2)

Call:
lm(formula = sparc_total_st ~ sarc_tot_cat + dx_oms_ca + edad + 
    educa + convivi + civil + genero + procede, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-47.228 -12.839  -1.678  11.936  57.100 

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)        32.20358    5.88199   5.475 6.76e-08 ***
sarc_tot_cat       13.57466    1.65117   8.221 1.55e-15 ***
dx_oms_caCancer     7.04284    2.01590   3.494 0.000516 ***
edad               -0.14652    0.06157  -2.380 0.017670 *  
educaBachillerato   1.74446    2.65406   0.657 0.511285    
educaPrimaria       0.62571    2.32567   0.269 0.787999    
educaTécnico        5.31059    4.01010   1.324 0.185971    
educaUniversitario  4.18345    4.04600   1.034 0.301620    
convivi            -0.11772    0.50393  -0.234 0.815376    
civilSeparado       2.40295    4.02922   0.596 0.551176    
civilSoltero        4.00919    2.31604   1.731 0.084023 .  
civilUnión libre    5.89601    2.13173   2.766 0.005875 ** 
civilViudo         -0.22512    2.52827  -0.089 0.929083    
generoFemenino      3.27796    1.67387   1.958 0.050716 .  
procedeRural        0.34914    1.77129   0.197 0.843818    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 18.03 on 531 degrees of freedom
Multiple R-squared:  0.1658,    Adjusted R-squared:  0.1438 
F-statistic:  7.54 on 14 and 531 DF,  p-value: 1.524e-14
tbl_regression(model2)
Characteristic Beta 95% CI p-value
sarc_tot_cat 14 10, 17 <0.001
dx_oms_ca


    No oncologica
    Cancer 7.0 3.1, 11 <0.001
edad -0.15 -0.27, -0.03 0.018
educa


    Ninguno
    Bachillerato 1.7 -3.5, 7.0 0.5
    Primaria 0.63 -3.9, 5.2 0.8
    Técnico 5.3 -2.6, 13 0.2
    Universitario 4.2 -3.8, 12 0.3
convivi -0.12 -1.1, 0.87 0.8
civil


    Casado
    Separado 2.4 -5.5, 10 0.6
    Soltero 4.0 -0.54, 8.6 0.084
    Unión libre 5.9 1.7, 10 0.006
    Viudo -0.23 -5.2, 4.7 >0.9
genero


    Masculino
    Femenino 3.3 -0.01, 6.6 0.051
procede


    Urbana
    Rural 0.35 -3.1, 3.8 0.8
Abbreviation: CI = Confidence Interval
check_model(model2)

model_performance(model2)
# Indices of model performance

AIC    |   AICc |    BIC |    R2 | R2 (adj.) |   RMSE |  Sigma
--------------------------------------------------------------
4724.1 | 4725.2 | 4793.0 | 0.166 |     0.144 | 17.777 | 18.026

Objetivo 4. Diseñar una estrategia de visualización apropiada para el reporte de las necesidades holísticas no satisfechas valoradas mediante la herramienta SPARC-Sp.

radar_data <- data %>%
  summarise(
    Fisico        = median(sparc_fis_p, na.rm = TRUE),
    Psicologico   = median(sparc_psic_p, na.rm = TRUE),
    Relacional    = median(sparc_rel_p, na.rm = TRUE),
    Independencia = median(sparc_inde_p, na.rm = TRUE),
    Familiar      = median(sparc_fami_p, na.rm = TRUE),
    Tratamiento   = median(sparc_tra_p, na.rm = TRUE)
  )

radar_group <- data %>%
  group_by(sarc_tot_cat) %>%
  summarise(
    Fisico        = median(sparc_fis_p, na.rm = TRUE),
    Psicologico   = median(sparc_psic_p, na.rm = TRUE),
    Relacional    = median(sparc_rel_p, na.rm = TRUE),
    Independencia = median(sparc_inde_p, na.rm = TRUE),
    Familiar      = median(sparc_fami_p, na.rm = TRUE),
    Tratamiento   = median(sparc_tra_p, na.rm = TRUE)
  )

radar_df <- rbind(
  max = rep(65, 6),
  min = rep(0, 6),
  radar_group[-1]
)


radarchart(
  radar_df,
  pcol = c("firebrick", "steelblue"),
  pfcol = c(
    scales::alpha("firebrick", 0.25),
    scales::alpha("steelblue", 0.25)
  ),
  plwd = 1,
  caxislabels = seq(0, 50, 10),
  cglcol = "grey80",
  axislabcol = "grey40",
  vlcex = 1
)

legend(
  "topright",
  legend = radar_group$sarc_tot_cat,
  col = c("firebrick", "steelblue"),
  lwd = 3,
  bty = "n"
)