LAB 1

Ejercicio 1

Utilizando las funciones citadas en este Laboratorio, comprobad qué paquetes tenéis instalados en vuestra versión de RStudio e instalad el paquete MASS y el paquete Survival y comprobad la información que contienen. Buscad información sobre el paquete Rcmdr (R Commander) desde la consola.

library() #Comprobamos los paquetes instalados.

options(repos = c(CRAN = "https://cloud.r-project.org")) #Definimos el repositorio para que no de error al exportar con knit

install.packages(c("MASS", "survival")) #Instalamos los paquetes
## Installing packages into 'C:/Users/vgalv/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'MASS' successfully unpacked and MD5 sums checked
## package 'survival' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\vgalv\AppData\Local\Temp\RtmpEl0S2V\downloaded_packages
library(MASS) #Cargamos ambos paquetes
## Warning: package 'MASS' was built under R version 4.5.2
library(survival)
## Warning: package 'survival' was built under R version 4.5.2
packageDescription("MASS") #Visualizamos su documentación
## Package: MASS
## Priority: recommended
## Version: 7.3-65
## Date: 2025-02-19
## Revision: $Rev: 3681 $
## Depends: R (>= 4.4.0), grDevices, graphics, stats, utils
## Imports: methods
## Suggests: lattice, nlme, nnet, survival
## Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
##         email = "Brian.Ripley@R-project.org"), person("Bill",
##         "Venables", role = c("aut", "cph")), person(c("Douglas", "M."),
##         "Bates", role = "ctb"), person("Kurt", "Hornik", role = "trl",
##         comment = "partial port ca 1998"), person("Albrecht",
##         "Gebhardt", role = "trl", comment = "partial port ca 1998"),
##         person("David", "Firth", role = "ctb", comment = "support
##         functions for polr"))
## Description: Functions and datasets to support Venables and Ripley,
##         "Modern Applied Statistics with S" (4th edition, 2002).
## Title: Support Functions and Datasets for Venables and Ripley's MASS
## LazyData: yes
## ByteCompile: yes
## License: GPL-2 | GPL-3
## URL: http://www.stats.ox.ac.uk/pub/MASS4/
## Contact: <MASS@stats.ox.ac.uk>
## NeedsCompilation: yes
## Packaged: 2025-02-19 08:49:43 UTC; ripley
## Author: Brian Ripley [aut, cre, cph], Bill Venables [aut, cph], Douglas
##         M. Bates [ctb], Kurt Hornik [trl] (partial port ca 1998),
##         Albrecht Gebhardt [trl] (partial port ca 1998), David Firth
##         [ctb] (support functions for polr)
## Maintainer: Brian Ripley <Brian.Ripley@R-project.org>
## Repository: CRAN
## Date/Publication: 2025-02-28 17:44:52 UTC
## Built: R 4.5.2; x86_64-w64-mingw32; 2026-03-06 11:03:30 UTC; windows
## Archs: x64
## 
## -- File: C:/Users/vgalv/AppData/Local/R/win-library/4.5/MASS/Meta/package.rds
packageDescription("survival")
## Title: Survival Analysis
## Priority: recommended
## Package: survival
## Version: 3.8-6
## Date: 2026-01-09
## Depends: R (>= 3.5.0)
## Imports: graphics, Matrix, methods, splines, stats, utils
## LazyData: Yes
## LazyDataCompression: xz
## ByteCompile: Yes
## Authors@R: c(person(c("Terry", "M"), "Therneau",
##         email="therneau.terry@mayo.edu", role=c("aut", "cre")),
##         person("Thomas", "Lumley", role=c("ctb", "trl"),
##         comment="original S->R port and R maintainer until 2009"),
##         person("Atkinson", "Elizabeth", role="ctb"), person("Crowson",
##         "Cynthia", role="ctb"))
## Description: Contains the core survival analysis routines, including
##         definition of Surv objects, Kaplan-Meier and Aalen-Johansen
##         (multi-state) curves, Cox models, and parametric accelerated
##         failure time models.
## License: LGPL (>= 2)
## URL: https://github.com/therneau/survival
## NeedsCompilation: yes
## Packaged: 2026-01-13 02:06:39 UTC; therneau
## Author: Terry M Therneau [aut, cre], Thomas Lumley [ctb, trl] (original
##         S->R port and R maintainer until 2009), Atkinson Elizabeth
##         [ctb], Crowson Cynthia [ctb]
## Maintainer: Terry M Therneau <therneau.terry@mayo.edu>
## Repository: CRAN
## Date/Publication: 2026-01-16 09:00:02 UTC
## Built: R 4.5.2; x86_64-w64-mingw32; 2026-03-06 12:04:48 UTC; windows
## Archs: x64
## 
## -- File: C:/Users/vgalv/AppData/Local/R/win-library/4.5/survival/Meta/package.rds
help(Rcmdr) #Al buscar información de Rcmdr nos sugiere utilizar "??". Lo hacemos a continuación.
## No documentation for 'Rcmdr' in specified packages and libraries:
## you could try '??Rcmdr'
??Rcmdr
## starting httpd help server ...
##  done

Ejercicio 2

  1. Importad un archivo de texto y buscad un summary() de tres variables que escojáis.
#Para el la primera parte, primero generamos un Data Frame y lo exportamos en txt.

library (MASS) #cargamos el paquete MASS que tenemos previamente instalado
library(readr) #cargamos el paquete readr que tenemos previamente instalado para importar la información
## Warning: package 'readr' was built under R version 4.5.2
data("birthwt") #Activamos los datos birthwt del paquete MASS de R que contiene datos de factores de riesgo asociados a los nacimientos de niños de bajo peso, mencionado anteriormente en este LAB.

DF <- data.frame(birthwt) #Creamos el DataFrame con los datos.

write.table(DF, file="birthwt.txt") #Exportamos a un archivo txt

#A continuación, tras borrar el contenido del DF, importamos el archivo txt

DF <- NULL #borramos la información del DF

DF_txt <- read.table("C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/birthwt.txt", header = TRUE) # importamos la información del archivo .txt

resumen <- summary(DF_txt[c("low", "age", "smoke")]) # Aquí generamos el resumen para las 3 variables, usando los corchetes para hacer la selección y dentro de ellos funció c() para generar un vector con el nombre de las variables

resumen #Visualizamos el resultado
##       low              age            smoke       
##  Min.   :0.0000   Min.   :14.00   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:19.00   1st Qu.:0.0000  
##  Median :0.0000   Median :23.00   Median :0.0000  
##  Mean   :0.3122   Mean   :23.24   Mean   :0.3915  
##  3rd Qu.:1.0000   3rd Qu.:26.00   3rd Qu.:1.0000  
##  Max.   :1.0000   Max.   :45.00   Max.   :1.0000
  1. Importad un archivo «.csv» y buscad un fivenum() de dos variables que os parezcan relevantes para el estudio.
#Para la segunda parte, reutilizaremos el código de arriba para un Data Frame y lo exportamos en csv.

library (MASS)
library(readr)

data("birthwt")

DF_birthwt <- data.frame(birthwt)

write_csv(DF_birthwt, file="birthwt.csv") #Exportamos esta vez a un archivo csv. Usamos la barra baja en lugar del punto (función de readr) ya que la del punto genera una coma al principio y al leer genera 11 variables en lugar de 10.

#A continuación importamos el archivo csv

DF_csv <- read_csv("C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/birthwt.csv") # importamos la información del archivo .csv
## Rows: 189 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (10): low, age, lwt, race, smoke, ptl, ht, ui, ftv, bwt
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
fivenum_low <- fivenum(DF_csv$low, na.rm = TRUE) 
fivenum_age <- fivenum(DF_csv$age, na.rm = TRUE) 
fivenum_smoke <- fivenum(DF_csv$smoke, na.rm = TRUE) # generamos los fivenums

fivenum_low
## [1] 0 0 0 1 1
fivenum_age
## [1] 14 19 23 26 45
fivenum_smoke # los visualizamos
## [1] 0 0 0 1 1

Ejercicio 3

A partir del conjunto de datos anorexia del paquete MASS, que corresponden a los datos de cambio de peso de pacientes jóvenes con anorexia, mostrad los tipos de datos que contiene y comprobad si existen valores NA y NULL.

Para la variable Treat, transformad los valores «CBT», «Cont» y «FT» en «Cogn Beh Tr», «Contr» y «Fam Tr», respectivamente.

library (MASS)

data("anorexia")

DF_anorexia <- data.frame(anorexia)

head(DF_anorexia) #Usando la cabecera de DF observamos que tenemos 3 variables con los siguientes tipos de datos: 1 factorial con 3 niveles y 2 numéricas.
##   Treat Prewt Postwt
## 1  Cont  80.7   80.2
## 2  Cont  89.4   80.1
## 3  Cont  91.8   86.4
## 4  Cont  74.0   86.3
## 5  Cont  78.1   76.1
## 6  Cont  88.3   78.1
any(is.na(DF_anorexia)) #Comprobamos si hay algún valor perdido en los registros.
## [1] FALSE
is.null(DF_anorexia) #Comprobamos si DF es NULL.
## [1] FALSE
#Para transformar los valores del factor, utilizaremos la función levels: 

levels(DF_anorexia$Treat)[levels(DF_anorexia$Treat) == "CBT"] <- "Cogn Beh Tr"

levels(DF_anorexia$Treat)[levels(DF_anorexia$Treat) == "Cont"] <- "Contr"

levels(DF_anorexia$Treat)[levels(DF_anorexia$Treat) == "FT"] <- "Fam Tr"

head(DF_anorexia$Treat) #Visualizamos el factor tras la transofrmación
## [1] Contr Contr Contr Contr Contr Contr
## Levels: Cogn Beh Tr Contr Fam Tr

Para obtener el nombre del dataset referente a anorexia accedemos a la documentación del paquete en el repositorio Cran.

Para consultar información de comandos se consultó páginas de R documentation, tales como: is.na is.null any

Por último para reemplazar los valores de la variable Treat, se consultó StackOverflow: levels

Ejercicio 4

  1. Exportad los datos biopsy del paquete MASS a un archivo «.csv.»
  2. Exportad los datos melanoma del paquete MASS a archivos de tres diferentes formatos y comprobad que se han creado los diferentes archivos en los formatos y las rutas especificados. Podéis generar una captura de pantalla de su ubicación en la carpeta.
  3. Generad un resumen (summary) de la variable age de melanoma y guardad la salida que os aparece en un documento .doc
  4. Buscad un data frame en algún repositorio de datos de Biomedicina, descargad un conjunto de datos en «.csv» e importad este fichero a un documento R Markdown usando el código o el menú de importación de RStudio.
# 4.1.

library (MASS)
library(readr)

data("biopsy")

write.csv(biopsy, file="C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/biopsy.csv")

# 4.2.

library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.5.2
data("Melanoma")

write_csv(Melanoma, file="C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/melanoma.csv")

write.table(Melanoma, "C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/melanoma.txt")

write.xlsx(Melanoma,"C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/melanoma.xlsx" )

# 4.3.

# No necesitamos importar la librería ni cargar Melanoma porque ya las hemos cargado anteriormente

DF_melanoma <- data.frame(Melanoma)

resumen_age <- summary(DF_melanoma$age)

capture.output(resumen, file="C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/resumen_age.doc")

#4.4. 

DF_Kp_CR <- read_csv("C:/Users/vgalv/OneDrive - Universidad de Córdoba/One Drive UCO/Master Bioinformatica/Cuatrimestre 1/Software para analisis de datos/R/Ejercicio 4/ECDC_surveillance_data_Antimicrobial_resistance.csv")
## Rows: 572 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (7): HealthTopic, Population, Indicator, Unit, RegionCode, RegionName, N...
## dbl (1): Time
## lgl (1): TxtValue
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(DF_Kp_CR)
## # A tibble: 6 × 9
##   HealthTopic    Population Indicator Unit   Time RegionCode RegionName NumValue
##   <chr>          <chr>      <chr>     <chr> <dbl> <chr>      <chr>      <chr>   
## 1 Antimicrobial… Klebsiell… R - resi… %      2005 AT         Austria    0.00000…
## 2 Antimicrobial… Klebsiell… R - resi… %      2005 BG         Bulgaria   0.00000…
## 3 Antimicrobial… Klebsiell… R - resi… %      2005 CY         Cyprus     -       
## 4 Antimicrobial… Klebsiell… R - resi… %      2005 CZ         Czechia    0.00000…
## 5 Antimicrobial… Klebsiell… R - resi… %      2005 DE         Germany    1.96078…
## 6 Antimicrobial… Klebsiell… R - resi… %      2005 EE         Estonia    0.00000…
## # ℹ 1 more variable: TxtValue <lgl>

Debido a que mi formación es en bacterias multirresistentes (actualmente estoy desarrollando mi tesis doctoral en este tema), el data set que he desgado ha sido el atlas de ECDC / EARS-Net. En concreto el data set que he descargado contiene información de Klebsiella pneumoniae resistente a carbapenémicos en Europa hasta el año 2024.

Solución apartado b)
Solución apartado b)

Ejercicio 5

En el siguiente ejemplo veremos cómo utilizar diferentes operadores sobre el conjunto de datos birthwt, así como también algunas funciones que nos permiten obtener más información de las variables:

  1. ¿Cuál es la edad máxima de las madres del conjunto de datos?
  2. ¿Cuál es la edad mínima de las madres del conjunto de datos?
  3. ¿Cuál es el rango de edad de las madres?
  4. ¿Fumaba la madre cuyo recién nacido era el de menor peso?
  5. ¿Cuánto pesó el recién nacido cuya madre tenía la edad máxima?
  6. Listad los pesos de los recién nacidos, cuyas madres visitarán menos de dos veces al médico durante el primer trimestre.
library(MASS)

data("birthwt")

help("birthwt") #Para poder conocer los nombres de las variables y lo que contienen usamos la función help.

DF_birthwt <- data.frame(birthwt)

min (DF_birthwt$age) # Solución a)
## [1] 14
max (DF_birthwt$age) # Solución b)
## [1] 45
rank <- max (DF_birthwt$age) - min (DF_birthwt$age)

rank# Solución c)
## [1] 31
DF_birthwt$smoke[DF_birthwt$bwt == min(DF_birthwt$bwt)] # Solución d) Dado que el resultado es 1, era fumadora.
## [1] 1
DF_birthwt$bwt[DF_birthwt$age == max(DF_birthwt$age)] # Solución e) Pesaba 4990 g
## [1] 4990
mother_visits_2 <- list(DF_birthwt$bwt[DF_birthwt$ftv < 2]) #Generamos un objeto de clase lista con los datos de los pesos de los recién nacidos, cuyas madres visitarán menos de dos veces al médico durante el primer trimestre.

class(mother_visits_2)
## [1] "list"
mother_visits_2 # Solución f)
## [[1]]
##   [1] 2523 2557 2600 2622 2637 2637 2663 2665 2722 2733 2751 2769 2769 2778 2807
##  [16] 2821 2836 2863 2877 2906 2920 2920 2920 2948 2948 2977 2977 2922 3033 3062
##  [31] 3062 3062 3062 3090 3090 3100 3104 3132 3175 3175 3203 3203 3203 3225 3225
##  [46] 3232 3234 3260 3274 3317 3317 3331 3374 3374 3402 3416 3444 3459 3460 3473
##  [61] 3544 3487 3544 3572 3572 3586 3600 3614 3614 3629 3637 3643 3651 3651 3651
##  [76] 3651 3699 3728 3756 3770 3770 3770 3790 3799 3827 3884 3912 3940 3941 3941
##  [91] 3969 3997 3997 4054 4054 4111 4174 4238 4593 4990  709 1135 1330 1474 1588
## [106] 1588 1701 1729 1790 1818 1885 1893 1899 1928 1936 1970 2055 2055 2084 2084
## [121] 2100 2125 2187 2187 2211 2225 2240 2240 2282 2296 2296 2325 2353 2353 2367
## [136] 2381 2381 2381 2410 2410 2410 2424 2442 2466 2466 2495 2495

Para la respuesta d, e y f se utilizó el libro “R para principiantes”, apartado de condicionales.

Ejercicio 6

A partir del conjunto de datos anorexia trabajado en apartados anteriores, cread una matriz que tenga como columnas los valores de Prewt y Postwt, y cada fila sean los valores correspondientes para cada posición.

library(MASS)

data("anorexia")

DF_anorexia <- data.frame(anorexia)

matriz_anorexia <- matrix (c(DF_anorexia$Prewt, DF_anorexia$Postwt), ncol = 2) #Generamos la matriz definiendo los valores de las variables como vector y fijando las columnas de la matriz en 2.

head(matriz_anorexia)
##      [,1] [,2]
## [1,] 80.7 80.2
## [2,] 89.4 80.1
## [3,] 91.8 86.4
## [4,] 74.0 86.3
## [5,] 78.1 76.1
## [6,] 88.3 78.1

Ejercicio 7

Copia el código siguiente en tu consola para generar un data frame con veinticinco registros y seis variables, y responde a los siguientes apartados:

  1. Seleccionad los registros con edad > 22.

  2. Seleccionad el elemento 3 de la columna 4 del conjunto de datos (contando el identificador).

  3. Usad el comando subset() para seleccionar todas las filas que tienen una edad menor que 27 años y sin incluir la columna Alt.

Identificador <-c("I1","I2","I3","I4","I5","I6","I7","I8","I9","I10","I11","I12","I13","I14","I15","I16","I17","I18","I19","I20","I21","I22","I23","I24","I25")
Edad <-c(23,24,21,22,23,25,26,24,21,22,23,25,26,24,22,21,25,26,24,21,25,27,26,22,29)
Sexo <-c(1,2,1,1,1,2,2,2,1,2,1,2,2,2,1,1,1,2,2,2,1,2,1,1,2) #1 para mujeres y 2 para hombres
Peso <-c(76.5,81.2,79.3,59.5,67.3,78.6,67.9,100.2,97.8,56.4,65.4,67.5,87.4,99.7,87.6,93.4,65.4,73.7,85.1,61.2,54.8,103.4,65.8,71.7,85.0)
Alt <-c(165,154,178,165,164,175,182,165,178,165,158,183,184,164,189,167,182,179,165,158,183,184,189,166,175) #altura en cm
Fuma <-c("SÍ","NO","SÍ","SÍ","NO","NO","NO","SÍ","SÍ","SÍ","NO","NO","SÍ","SÍ","SÍ","SÍ","NO","NO","SÍ","SÍ","SÍ","NO","SÍ","NO","SÍ")
Trat_Pulmon <- data.frame(Identificador,Edad,Sexo,Peso,Alt,Fuma)

Trat_Pulmon
##    Identificador Edad Sexo  Peso Alt Fuma
## 1             I1   23    1  76.5 165   SÍ
## 2             I2   24    2  81.2 154   NO
## 3             I3   21    1  79.3 178   SÍ
## 4             I4   22    1  59.5 165   SÍ
## 5             I5   23    1  67.3 164   NO
## 6             I6   25    2  78.6 175   NO
## 7             I7   26    2  67.9 182   NO
## 8             I8   24    2 100.2 165   SÍ
## 9             I9   21    1  97.8 178   SÍ
## 10           I10   22    2  56.4 165   SÍ
## 11           I11   23    1  65.4 158   NO
## 12           I12   25    2  67.5 183   NO
## 13           I13   26    2  87.4 184   SÍ
## 14           I14   24    2  99.7 164   SÍ
## 15           I15   22    1  87.6 189   SÍ
## 16           I16   21    1  93.4 167   SÍ
## 17           I17   25    1  65.4 182   NO
## 18           I18   26    2  73.7 179   NO
## 19           I19   24    2  85.1 165   SÍ
## 20           I20   21    2  61.2 158   SÍ
## 21           I21   25    1  54.8 183   SÍ
## 22           I22   27    2 103.4 184   NO
## 23           I23   26    1  65.8 189   SÍ
## 24           I24   22    1  71.7 166   NO
## 25           I25   29    2  85.0 175   SÍ
Trat_Pulmon$Edad [Trat_Pulmon$Edad > 22] # Respuesta a)
##  [1] 23 24 23 25 26 24 23 25 26 24 25 26 24 25 27 26 29
Trat_Pulmon [[3,4]] # Respuesta b)
## [1] 79.3
Subset_c <- subset(Trat_Pulmon, Edad < 27, select= - c(Alt)) # Respuesta c)

Subset_c
##    Identificador Edad Sexo  Peso Fuma
## 1             I1   23    1  76.5   SÍ
## 2             I2   24    2  81.2   NO
## 3             I3   21    1  79.3   SÍ
## 4             I4   22    1  59.5   SÍ
## 5             I5   23    1  67.3   NO
## 6             I6   25    2  78.6   NO
## 7             I7   26    2  67.9   NO
## 8             I8   24    2 100.2   SÍ
## 9             I9   21    1  97.8   SÍ
## 10           I10   22    2  56.4   SÍ
## 11           I11   23    1  65.4   NO
## 12           I12   25    2  67.5   NO
## 13           I13   26    2  87.4   SÍ
## 14           I14   24    2  99.7   SÍ
## 15           I15   22    1  87.6   SÍ
## 16           I16   21    1  93.4   SÍ
## 17           I17   25    1  65.4   NO
## 18           I18   26    2  73.7   NO
## 19           I19   24    2  85.1   SÍ
## 20           I20   21    2  61.2   SÍ
## 21           I21   25    1  54.8   SÍ
## 23           I23   26    1  65.8   SÍ
## 24           I24   22    1  71.7   NO

Ejercicio 8

Incorporad el dataset ChickWeight que contiene información sobre el peso de 578 pollitos en gramos (weight), el tiempo desde la medición al nacer (Time), una variable identificadora de cada pollito (Chick) a partir del rango de peso y una variable factor con el tipo de dieta experimental que cada pollito recibió (Diet).

  1. Incorporad el conjunto de datos ChickWeight del paquete datasets a vuestro entorno de trabajo.

  2. Generad un gráfico de dispersión de la variable weight.

  3. Cread un diagrama de caja con la variable Time.

library(datasets)

data("ChickWeight")

DF_chickWeight <- data.frame(ChickWeight)

plot(DF_chickWeight$weight,main="Gráfico de dispersión", xlab="Índice", ylab="Peso corporal del pollito (g)") # Solución B

boxplot(DF_chickWeight$Time, main="Diagramas de caja", ylab="Número de días desde el nacimiento") # Solución C

Ejercicio 9

A partir del conjunto de datos anorexia del paquete MASS, cread otro data frame que se llame anorexia_treat_df formado por Treat y por un vector nuevo calculado a partir de la diferencia Prewt-Postwt. De esta manera, nos quedará un data frame que contenga el tipo de tratamiento y el valor del peso ganado o perdido después de haber realizado el tratamiento.

Seleccionad aquellos individuos que han ganado peso después del tratamiento y cread un nuevo conjunto llamado anorexia_treat_C_df que contenga solo los datos de aquellos que han seguido el tratamiento «Cont» y que han ganado peso después del tratamiento.

library(MASS)

data("anorexia")

anorexia_treat_df <- data.frame(anorexia$Treat, c(anorexia$Prewt-anorexia$Postwt))

head(anorexia_treat_df)
##   anorexia.Treat c.anorexia.Prewt...anorexia.Postwt.
## 1           Cont                                 0.5
## 2           Cont                                 9.3
## 3           Cont                                 5.4
## 4           Cont                               -12.3
## 5           Cont                                 2.0
## 6           Cont                                10.2
anorexia_treat_C_df <- subset(anorexia_treat_df, anorexia.Treat == "Cont" & c.anorexia.Prewt...anorexia.Postwt.>0)

head(anorexia_treat_C_df)
##   anorexia.Treat c.anorexia.Prewt...anorexia.Postwt.
## 1           Cont                                 0.5
## 2           Cont                                 9.3
## 3           Cont                                 5.4
## 5           Cont                                 2.0
## 6           Cont                                10.2
## 7           Cont                                12.2

Ejercicio 10

Entrad en RPubs y registraros. Crearos un perfil y subid un documento R Markdown. Los prerequisitos son tener instalado R y RStudio (v0.96.230 o más), y el paquete knitr (v0.5 o más). Pasos que tenéis que seguir para publicar vuestro documento:

  1. En RStudio, cread un documento R Markdown.

  2. Generad el documento con Knit.

  3. En la ventana de previsualización, clicad el botón de publicar.

Como solución de vuestro ejercicio, copiad el enlace de vuestra página de prueba de RPubs.