Antes de comenzar, debemos abrir el proyecto Taller de R.rproj que se ubica en la carpeta “Taller de R”. Es importante que abramos el proyecto en lugar del script de forma aislada. Podés chequear esto mirando en la esquina superior derecha de tu pantalla de RStudio:

Base de datos

En esta actividad vamos a utilizar la base de datos Depresion.csv.

Esta base incluye las respuestas de 295 participantes a dos cuestionarios, uno de felicidad (Authentic Happiness Inventory) y uno de prevalencia de síntomas depresivos (Center for Epidemiological Studies Depression (CES-D) scale). Los datos provienen de un estudio sobre el efecto de cuatro técnicas provenientes de la psicología positiva aplicadas de forma virtual, vía una página web, sobre estas dos variables.

Cada participante fue asignado a uno de los cuatro grupos de intervención y fue evaluado al momento de su inscripción al estudio y en 5 ocaciones posteriores.
El set de datos incluye la respuesta de cada participante a los 24 ítems del cuestionario de felicidad (AHI) y a los 20 ítems de la escala de depresión (CES-D) para cada una de las evaluaciones (6 en total), el tiempo que transcurrió entre cada evaluación y el id del sujeto.

Exploración inicial de la base Depresion.csv.

Para realizar esta actividad necesitamos cargar los paquetes readxl, writexl y tidyverse. Para ello utilizamos la función library().

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.4
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.4     v dplyr   1.0.2
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(readxl)
library(writexl)

Luego, utilizamos la función read_csv para importar la base Depresion.csv ubicada en la carpeta datos y creamos un data frame llamado depresion.

depresion <- read_csv("datos/Depresion.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   .default = col_double()
## )
## i Use `spec()` for the full column specifications.

Para revisar el tipo de dato que contiene cada variable, utilizamos la función glimpse().

glimpse(depresion)
## Rows: 992
## Columns: 48
## $ id           <dbl> 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, ...
## $ occasion     <dbl> 0, 1, 0, 1, 2, 3, 4, 5, 0, 2, 0, 1, 3, 4, 0, 1, 2, 3, ...
## $ elapsed.days <dbl> 0, 1177273148, 0, 8017523148, 1430408565, 3198356481, ...
## $ intervention <dbl> 4, 4, 1, 1, 1, 1, 1, 1, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, ...
## $ ahi01        <dbl> 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 1, 3, 1, 1, 2, 2, ...
## $ ahi02        <dbl> 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, ...
## $ ahi03        <dbl> 2, 4, 3, 4, 4, 4, 2, 3, 2, 3, 3, 3, 2, 3, 3, 3, 3, 3, ...
## $ ahi04        <dbl> 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, ...
## $ ahi05        <dbl> 3, 3, 2, 3, 3, 4, 3, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, ...
## $ ahi06        <dbl> 2, 4, 3, 3, 3, 4, 3, 3, 3, 4, 3, 3, 1, 1, 2, 2, 2, 2, ...
## $ ahi07        <dbl> 3, 4, 4, 4, 4, 4, 3, 3, 4, 4, 3, 3, 2, 3, 1, 1, 2, 2, ...
## $ ahi08        <dbl> 3, 3, 3, 4, 3, 3, 3, 4, 3, 3, 1, 1, 1, 2, 1, 2, 2, 1, ...
## $ ahi09        <dbl> 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 5, 5, 4, 3, 2, 2, 2, 2, ...
## $ ahi10        <dbl> 2, 2, 3, 3, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, ...
## $ ahi11        <dbl> 3, 2, 2, 3, 3, 4, 4, 3, 2, 3, 3, 3, 2, 3, 2, 2, 2, 2, ...
## $ ahi12        <dbl> 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 3, 4, 4, 3, 2, 2, 2, 2, ...
## $ ahi13        <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 2, 2, 2, ...
## $ ahi14        <dbl> 2, 3, 3, 4, 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 2, 1, 1, 2, ...
## $ ahi15        <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 1, 1, 1, 1, ...
## $ ahi16        <dbl> 3, 3, 3, 4, 4, 4, 4, 3, 4, 4, 1, 2, 2, 2, 2, 2, 2, 2, ...
## $ ahi17        <dbl> 2, 2, 3, 4, 4, 4, 3, 4, 3, 4, 3, 3, 3, 3, 1, 1, 2, 2, ...
## $ ahi18        <dbl> 2, 3, 3, 4, 4, 4, 4, 4, 3, 3, 1, 1, 1, 1, 1, 2, 2, 2, ...
## $ ahi19        <dbl> 3, 3, 3, 4, 4, 4, 4, 2, 4, 4, 3, 3, 4, 3, 2, 2, 2, 2, ...
## $ ahi20        <dbl> 3, 3, 3, 4, 3, 4, 4, 4, 3, 4, 4, 5, 3, 4, 2, 2, 2, 2, ...
## $ ahi21        <dbl> 2, 3, 2, 4, 4, 4, 3, 4, 3, 4, 3, 3, 3, 3, 1, 1, 2, 2, ...
## $ ahi22        <dbl> 2, 3, 2, 3, 4, 4, 3, 3, 3, 4, 2, 2, 1, 2, 1, 1, 2, 2, ...
## $ ahi23        <dbl> 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 1, 2, 1, 2, 2, 1, 2, 2, ...
## $ ahi24        <dbl> 2, 2, 3, 4, 4, 4, 3, 3, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, ...
## $ cesd01       <dbl> 2, 2, 1, 3, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 1, 1, 2, 1, ...
## $ cesd02       <dbl> 1, 1, 1, 2, 1, 1, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 2, ...
## $ cesd03       <dbl> 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 4, 3, 4, 4, 1, 1, 2, 1, ...
## $ cesd04       <dbl> 4, 4, 1, 3, 1, 1, 1, 4, 4, 4, 2, 3, 1, 1, 3, 2, 2, 2, ...
## $ cesd05       <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 1, 1, 2, 1, 3, 3, 3, 2, ...
## $ cesd06       <dbl> 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 3, 4, 3, 4, 2, 2, 1, ...
## $ cesd07       <dbl> 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 3, 3, 4, 2, 3, 3, 3, 2, ...
## $ cesd08       <dbl> 3, 4, 1, 1, 1, 4, 4, 2, 4, 4, 1, 3, 2, 2, 1, 1, 2, 1, ...
## $ cesd09       <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 3, 2, 1, ...
## $ cesd10       <dbl> 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, 1, 1, 1, ...
## $ cesd11       <dbl> 3, 2, 2, 1, 3, 2, 2, 2, 2, 2, 1, 4, 4, 1, 4, 3, 3, 3, ...
## $ cesd12       <dbl> 2, 4, 4, 3, 4, 1, 3, 4, 4, 4, 2, 2, 1, 1, 2, 1, 1, 1, ...
## $ cesd13       <dbl> 2, 1, 1, 1, 3, 1, 3, 3, 1, 2, 4, 3, 4, 4, 2, 3, 1, 1, ...
## $ cesd14       <dbl> 3, 2, 1, 1, 1, 1, 1, 3, 2, 2, 4, 4, 4, 4, 3, 3, 3, 2, ...
## $ cesd15       <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, ...
## $ cesd16       <dbl> 2, 3, 4, 3, 1, 3, 3, 4, 4, 4, 2, 2, 1, 2, 2, 1, 1, 1, ...
## $ cesd17       <dbl> 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 4, 4, 4, 1, 3, 1, 1, ...
## $ cesd18       <dbl> 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 3, 4, 4, 4, 2, 2, 2, 2, ...
## $ cesd19       <dbl> 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, ...
## $ cesd20       <dbl> 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 3, 3, 2, 2, ...

Podemos ver que el data frame contiene 992 filas y 48 columnas y que todas las variables están codificadas como numéricas (doubles).

Vamos a utilizar la función is.na() para ver si el data frame contiene valores faltantes. Esta función toma como argumento el data frame y genera una matriz con valores lógicos (verdadero o falso) de iguales dimensiones que el data frame, indicando, para cada una de las celdas, si se trata de un valor faltante (TRUE) o no (FALSE).

is.na(depresion)
##         id occasion elapsed.days intervention ahi01 ahi02 ahi03 ahi04 ahi05
## [1,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
## [2,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
## [3,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
## [4,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
## [5,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
## [6,] FALSE    FALSE        FALSE        FALSE FALSE FALSE FALSE FALSE FALSE
##      ahi06 ahi07
## [1,] FALSE FALSE
## [2,] FALSE FALSE
## [3,] FALSE FALSE
## [4,] FALSE FALSE
## [5,] FALSE FALSE
## [6,] FALSE FALSE

Para acceder rápidamente a la cantidad total de valores faltantes necesitas ubicar esta función dentro de la función sum(). Como vimos en la primera clase, los valores lógicos pueden interpretarse como numéricos (TRUE = 1, FALSE = 0). El resultado de la suma de los valores de la matriz generada por is.na(depresion) es el total de los valores TRUE.

sum(is.na(depresion))
## [1] 0

De esta forma podemos observar que nuestra base de datos no tiene valores faltantes.

La variable occasion indica los distintos momentos de evaluación (el inicial y los 5 subsiguientes) e intervention el grupo al que pertenece el participante según la técnica con que esta siendo tratado. Si bien se encuentran codificadas como numéricas, cada valor representa una categoría. Contar cuantas observaciones tenemos en cada una de ellas utilizando la función count().

count(depresion, occasion)
## # A tibble: 6 x 2
##   occasion     n
##      <dbl> <int>
## 1        0   295
## 2        1   147
## 3        2   157
## 4        3   139
## 5        4   134
## 6        5   120
count(depresion, intervention)
## # A tibble: 4 x 2
##   intervention     n
##          <dbl> <int>
## 1            1   232
## 2            2   289
## 3            3   210
## 4            4   261

Llama la atención el que la cantidad de observaciones varía de administración a administración. No todos los participantes fueron evaluados en todas las instancias.

Crear y modificar variables

Dos medidas que nos interesa tener en nuestro data frame son los puntajes totales del inventario AHI y la escala CES-D. Para ello necesitamos sumar los puntajes de cada ítem individual, pero antes debemos invertir los puntajes de las preguntas 4, 8, 12 y 16 de la escala CES-D. Como cada ítem se responde con una escala likert de 1 a 4 puntos, podemos utilizar el siguiente código:

depresion %>% 
  mutate_at(vars(cesd04, cesd08, cesd12, cesd16), function(x){5 - x})

La función mutate_at() es una extensión de la función mutate() que me permite realizar una modificación sobre más de una variable simultaneamente. Dentro de mutate_at indico primero que variables quiero seleccionar utilizando la función vars() y luego function(x){5 - x}. function() permite crear la función que queremos aplicar sobre cada una de las variables, las cuales se indican con la letra x. Entre {} especificamos la operación que queremos llevar a cabo, en este caso vamos a restarle a 5 cada valor de cada variable. Es más fácil de verlo corriendo el siguiente código:

depresion %>% 
  select(cesd04) %>% 
  head(4)
## # A tibble: 4 x 1
##   cesd04
##    <dbl>
## 1      4
## 2      4
## 3      1
## 4      3
depresion %>% 
  mutate_at(vars(cesd04, cesd08, cesd12, cesd16), function(x){5 - x}) %>% 
  select(cesd04) %>% 
  head(4)
## # A tibble: 4 x 1
##   cesd04
##    <dbl>
## 1      1
## 2      1
## 3      4
## 4      2

Asigná esta nueva variable al data frame ya existente:

depresion <- depresion %>% 
  mutate_at(vars(cesd04, cesd08, cesd12, cesd16), function(x){5 - x})

Ahora que todos los ítems tienen sus valores corregidos, vamos a crear las variables felicidad_AHI y depresion_CESD sumando los puntajes individuales. Utilizá la función names() para generar un vector con el nombre de todas las columnas.

names(depresion)
##  [1] "id"           "occasion"     "elapsed.days" "intervention" "ahi01"       
##  [6] "ahi02"        "ahi03"        "ahi04"        "ahi05"        "ahi06"       
## [11] "ahi07"        "ahi08"        "ahi09"        "ahi10"        "ahi11"       
## [16] "ahi12"        "ahi13"        "ahi14"        "ahi15"        "ahi16"       
## [21] "ahi17"        "ahi18"        "ahi19"        "ahi20"        "ahi21"       
## [26] "ahi22"        "ahi23"        "ahi24"        "cesd01"       "cesd02"      
## [31] "cesd03"       "cesd04"       "cesd05"       "cesd06"       "cesd07"      
## [36] "cesd08"       "cesd09"       "cesd10"       "cesd11"       "cesd12"      
## [41] "cesd13"       "cesd14"       "cesd15"       "cesd16"       "cesd17"      
## [46] "cesd18"       "cesd19"       "cesd20"

Todas las preguntas del inventario de felicidad comienzan con el prefijo “ahi” mientras que todas las de la escala de depresión comienzan con el prefijo “cesd”. En ambos casos, en minúscula. Podés usar la función starts_with() para seleccionar esas variables y rowSums() para sumar todos los valores. Finalmente, debés ubicar todo esto dentro de mutate() para crear las nuevas variables.

depresion <- depresion %>% 
  mutate(felicidad_AHI = rowSums(select(., starts_with("ahi"))),
         depresion_CESD = rowSums(select(., starts_with("cesd")))) %>% 
  select(-starts_with("ahi"), -starts_with("cesd"), -elapsed.days)

Aprovechamos la oportunidad para sacar de la base todos los ítems individuales y la columna elapsed.days utilizando la función select(). Volvemos a asignar el resultado al data frame existente. Podés utilizar glimpse() para ver el resultado.

glimpse(depresion)
## Rows: 992
## Columns: 5
## $ id             <dbl> 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5...
## $ occasion       <dbl> 0, 1, 0, 1, 2, 3, 4, 5, 0, 2, 0, 1, 3, 4, 0, 1, 2, 3...
## $ intervention   <dbl> 4, 4, 1, 1, 1, 1, 1, 1, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2...
## $ felicidad_AHI  <dbl> 63, 73, 73, 89, 89, 93, 80, 77, 77, 85, 60, 67, 56, ...
## $ depresion_CESD <dbl> 34, 26, 27, 30, 33, 28, 35, 32, 23, 25, 51, 51, 61, ...

Cambiá el nombre de las columnas occasion e intervention por evaluacion e intervencion respectivamente utilizando la función names() y corchetes para segmentar el vector resultante.

names(depresion)[2:3] <- c("evaluacion", "intervencion")

Finalmente, en el caso de la escala CES-D, puntajes de 26 en adelante son considerados indicativos de depresión clínica. Creá una variable categórica llamada depresion_clinica que tome el valor “si” cuando el puntaje es igual o mayor a 26 y “no” cuando es menor, y asignáselo al data frame existente.

depresion <- depresion %>% 
  mutate(depresion_clinica = ifelse(depresion_CESD >= 26, "si", "no")) 

Usá la función count() para determinar cuantas observaciones caen dentro de cada categoría:

count(depresion, depresion_clinica)
## # A tibble: 2 x 2
##   depresion_clinica     n
##   <chr>             <int>
## 1 no                  330
## 2 si                  662

Posicionate en la consola y escribí el siguiente código dir.create(“Analisis depresion”) y presioná enter. Con esto creaste, dentro de la carpeta Taller de R, una carpeta nueva llamada Analisis depresion. Utilizá la función write_xlsx() del paquete writexl para guardar la base modificada dentro de la nueva carpeta en un archivo de excel (.xlsx) llamado Depresion.xlsx.

write_xlsx(depresion, "Analisis depresion/Depresion.xlsx")

Chequeá en la pestaña files que se haya guardado correctamente.

Análisis descriptivos

Vamos a calcular la media y el desvío estándar de las variables felicidad_AHI y depresion_CESD, agrupados por intervención.

depresion %>% 
  group_by(intervencion) %>% 
  summarise(Media_AHI = mean(felicidad_AHI), DE_AHI = sd(felicidad_AHI),
            Media_CESD = mean(depresion_CESD), DE_CESD = sd(depresion_CESD))
## # A tibble: 4 x 5
##   intervencion Media_AHI DE_AHI Media_CESD DE_CESD
##          <dbl>     <dbl>  <dbl>      <dbl>   <dbl>
## 1            1      71.8   14.7       33.7   12.8 
## 2            2      71.8   14.2       34.2   11.5 
## 3            3      72.0   14.5       34.6   12.8 
## 4            4      75.4   13.2       30.3    9.28

Probá agregar a los descriptivos los valores mínimos y máximos de cada variable.

Si la lista de variables y/o medidas que querés calcular es muy extensa, una alternativa es utilizar el siguiente código:

depresion %>% 
  group_by(intervencion) %>% 
  summarise_at(vars(felicidad_AHI, depresion_CESD), 
               .funs = list(Media = mean, DE = sd, min = min, max = max)) 
## # A tibble: 4 x 9
##   intervencion felicidad_AHI_M~ depresion_CESD_~ felicidad_AHI_DE
##          <dbl>            <dbl>            <dbl>            <dbl>
## 1            1             71.8             33.7             14.7
## 2            2             71.8             34.2             14.2
## 3            3             72.0             34.6             14.5
## 4            4             75.4             30.3             13.2
## # ... with 5 more variables: depresion_CESD_DE <dbl>, felicidad_AHI_min <dbl>,
## #   depresion_CESD_min <dbl>, felicidad_AHI_max <dbl>, depresion_CESD_max <dbl>

summarise_at() es una extensión de la función summarise() que permite seleccionar varias variables sin necesidad de tener que escribirlas dentro de cada función. La función vars() permite seleccionar las variables que nos interesa describir, y dentro de .funs() podemos listar las medidas que queremos calcular. Se puede agregar un nombre para cada una, como en el código anterior, pero esto no es obligatorio.

Corré nuevamente el código que utilizamos para obtener la media y el desvío estándar, pero esta vez asignáselo al objeto descriptivos.

descriptivos <- depresion %>% 
  group_by(intervencion) %>% 
  summarise(Media_AHI = mean(felicidad_AHI), DE_AHI = sd(felicidad_AHI),
            Media_CESD = mean(depresion_CESD), DE_CESD = sd(depresion_CESD))

Guardá el data frame descriptivos como un archivo de excel (.xlsx) con la función write_xlsx() dentro de la carpeta Analisis depresion.

write_xlsx(descriptivos, "Analisis depresion/Tabla de descriptivos.xlsx")

Gráfico de líneas

Los gráficos de líneas muestran tendencias o cambios a lo largo del tiempo y son útiles para comparar la evolución durante el mismo período de distintos grupos o categorías.

Vamos a realizar un gráfico de líneas para visualizar como fueron cambiando las medidas de felicidad y depresión de los grupos que recibieron las distintas intervenciones utilizando el paquete ggplot2.

Comencemos con felicidad_AHI.

Primero, necesitamos construir un data frame que incluya la media de la variable para cada intervención, en las distintas evaluaciones.

Podemos verlo con el siguiente código:

depresion %>% 
  group_by(intervencion, evaluacion) %>% 
  summarise(Media_AHI = mean(felicidad_AHI)) 
## `summarise()` regrouping output by 'intervencion' (override with `.groups` argument)
## # A tibble: 24 x 3
## # Groups:   intervencion [4]
##    intervencion evaluacion Media_AHI
##           <dbl>      <dbl>     <dbl>
##  1            1          0      68.4
##  2            1          1      69.5
##  3            1          2      70.3
##  4            1          3      75.0
##  5            1          4      76.5
##  6            1          5      75.5
##  7            2          0      68.8
##  8            2          1      71.6
##  9            2          2      73.0
## 10            2          3      72.5
## # ... with 14 more rows

Vamos a utilizar las variables intervencion, evaluacion y Media_AHI para construir el gráfico.

depresion %>% 
  group_by(intervencion, evaluacion) %>% 
  summarise(Media_AHI = mean(felicidad_AHI)) %>% 
  ggplot(aes(x = evaluacion, y = Media_AHI, color = as_factor(intervencion))) +
  geom_line()
## `summarise()` regrouping output by 'intervencion' (override with `.groups` argument)

Rápidamente puede observarse que, a excepción del grupo 3, hubo un aumento en los puntajes obtenidos en el cuestionario de felicidad a lo largo del estudio.

¿Que pasa con los puntajes en el cuestionario de depresión?

Agreguemos algunos detalles:

depresion %>% 
  group_by(intervencion, evaluacion) %>% 
  summarise(Media_AHI = mean(felicidad_AHI)) %>% 
  ggplot(aes(x = evaluacion, y = Media_AHI, color = as_factor(intervencion))) +
  geom_line(size = 0.8) +
  theme_classic() +
  theme(legend.position = c(.13, .78)) +
  labs(color = "Intervención", x = "Momento de evaluación", y = "Promedio de puntajes\n(Inventario de felicidad autoadministrado)") + 
 scale_color_viridis_d()
## `summarise()` regrouping output by 'intervencion' (override with `.groups` argument)

Ahora podemos copiar el código e intercambiar la variable felicidad_AHI por depresion_CESD.

depresion %>% 
  group_by(intervencion, evaluacion) %>% 
  summarise(Media_CESD = mean(depresion_CESD)) %>% 
  ggplot(aes(x = evaluacion, y = Media_CESD, color = as_factor(intervencion))) +
  geom_line(size = 0.8) +
  theme_classic() +
  theme(legend.position = c(.325, .1), legend.direction = "horizontal") +
  labs(color = "Intervención", x = "Momento de evaluación", y = "Promedio de puntajes\n(Escala de depresión CES-D)") + 
 scale_color_viridis_d()
## `summarise()` regrouping output by 'intervencion' (override with `.groups` argument)