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.

paquetes_instalados <- installed.packages()[, "Package"]
print(paquetes_instalados)
##            abind          askpass        backports        base64enc 
##          "abind"        "askpass"      "backports"      "base64enc" 
##              bit            bit64             blob            broom 
##            "bit"          "bit64"           "blob"          "broom" 
##            bslib           cachem            callr              car 
##          "bslib"         "cachem"          "callr"            "car" 
##          carData       cellranger        checkmate            class 
##        "carData"     "cellranger"      "checkmate"          "class" 
##              cli            clipr          cluster       colorspace 
##            "cli"          "clipr"        "cluster"     "colorspace" 
##       conflicted          cowplot            cpp11           crayon 
##     "conflicted"        "cowplot"          "cpp11"         "crayon" 
##             curl       data.table              DBI           dbplyr 
##           "curl"     "data.table"            "DBI"         "dbplyr" 
##            Deriv           digest             doBy            dplyr 
##          "Deriv"         "digest"           "doBy"          "dplyr" 
##           dtplyr            e1071          effects     estimability 
##         "dtplyr"          "e1071"        "effects"   "estimability" 
##         evaluate            fansi           farver          fastmap 
##       "evaluate"          "fansi"         "farver"        "fastmap" 
##      fontawesome          forcats          foreign          Formula 
##    "fontawesome"        "forcats"        "foreign"        "Formula" 
##               fs           gargle         generics          ggplot2 
##             "fs"         "gargle"       "generics"        "ggplot2" 
##             glue      googledrive    googlesheets4        gridExtra 
##           "glue"    "googledrive"  "googlesheets4"      "gridExtra" 
##           gtable            haven             here            highr 
##         "gtable"          "haven"           "here"          "highr" 
##            Hmisc              hms        htmlTable        htmltools 
##          "Hmisc"            "hms"      "htmlTable"      "htmltools" 
##      htmlwidgets             httr              ids          insight 
##    "htmlwidgets"           "httr"            "ids"        "insight" 
##          isoband        jquerylib         jsonlite       KernSmooth 
##        "isoband"      "jquerylib"       "jsonlite"     "KernSmooth" 
##            knitr         labeling        lifecycle             lme4 
##          "knitr"       "labeling"      "lifecycle"           "lme4" 
##        lubridate         magrittr             MASS           Matrix 
##      "lubridate"       "magrittr"           "MASS"         "Matrix" 
##     MatrixModels          memoise   microbenchmark             mime 
##   "MatrixModels"        "memoise" "microbenchmark"           "mime" 
##            minqa          mitools           modelr          munsell 
##          "minqa"        "mitools"         "modelr"        "munsell" 
##             nlme           nloptr             nnet          nortest 
##           "nlme"         "nloptr"           "nnet"        "nortest" 
##         numDeriv          openssl          packrat         pbkrtest 
##       "numDeriv"        "openssl"        "packrat"       "pbkrtest" 
##           pillar        pkgconfig              PKI              png 
##         "pillar"      "pkgconfig"            "PKI"            "png" 
##      prettyunits         processx         progress            proxy 
##    "prettyunits"       "processx"       "progress"          "proxy" 
##               ps            purrr         quantreg               R6 
##             "ps"          "purrr"       "quantreg"             "R6" 
##             ragg         rappdirs        rbibutils            Rcmdr 
##           "ragg"       "rappdirs"      "rbibutils"          "Rcmdr" 
##        RcmdrMisc     RColorBrewer             Rcpp    RcppArmadillo 
##      "RcmdrMisc"   "RColorBrewer"           "Rcpp"  "RcppArmadillo" 
##        RcppEigen         RcppTOML           Rdpack            readr 
##      "RcppEigen"       "RcppTOML"         "Rdpack"          "readr" 
##      readstata13           readxl       reformulas           relimp 
##    "readstata13"         "readxl"     "reformulas"         "relimp" 
##          rematch         rematch2             renv           reprex 
##        "rematch"       "rematch2"           "renv"         "reprex" 
##       reticulate            rlang        rmarkdown            rpart 
##     "reticulate"          "rlang"      "rmarkdown"          "rpart" 
##        rprojroot        rsconnect       rstudioapi            rvest 
##      "rprojroot"      "rsconnect"     "rstudioapi"          "rvest" 
##         sandwich             sass           scales          selectr 
##       "sandwich"           "sass"         "scales"        "selectr" 
##          SparseM          spatial          stringi          stringr 
##        "SparseM"        "spatial"        "stringi"        "stringr" 
##           survey         survival              sys      systemfonts 
##         "survey"       "survival"            "sys"    "systemfonts" 
##           tcltk2      textshaping           tibble            tidyr 
##         "tcltk2"    "textshaping"         "tibble"          "tidyr" 
##       tidyselect        tidyverse       timechange          tinytex 
##     "tidyselect"      "tidyverse"     "timechange"        "tinytex" 
##             tzdb             utf8             uuid            vctrs 
##           "tzdb"           "utf8"           "uuid"          "vctrs" 
##          viridis      viridisLite            vroom            withr 
##        "viridis"    "viridisLite"          "vroom"          "withr" 
##             xfun             xml2             yaml              zoo 
##           "xfun"           "xml2"           "yaml"            "zoo" 
##             base             boot            class          cluster 
##           "base"           "boot"          "class"        "cluster" 
##        codetools         compiler         datasets          foreign 
##      "codetools"       "compiler"       "datasets"        "foreign" 
##         graphics        grDevices             grid       KernSmooth 
##       "graphics"      "grDevices"           "grid"     "KernSmooth" 
##          lattice             MASS           Matrix          methods 
##        "lattice"           "MASS"         "Matrix"        "methods" 
##             mgcv             nlme             nnet         parallel 
##           "mgcv"           "nlme"           "nnet"       "parallel" 
##            rpart          spatial          splines            stats 
##          "rpart"        "spatial"        "splines"          "stats" 
##           stats4         survival            tcltk            tools 
##         "stats4"       "survival"          "tcltk"          "tools" 
##     translations            utils 
##   "translations"          "utils"
if (!requireNamespace("survival", quietly = TRUE)) {install.packages("survival")}
library(survival)

if (!requireNamespace("MASS", quietly = TRUE)) {install.packages("MASS")}
library(MASS)

Tuve un problema al instalar algunos paquetes en RStudio, ya que me apareció un mensaje indicando que Rtools era necesario para compilar ciertos paquetes, pero no estaba instalado. Para solucionarlo, fui a la web que indicaba el mensaje (https://cran.rstudio.com/bin/windows/Rtools/) y descargué Rtools 4.4.

Después de instalarlo, reinicié RStudio para que reconociera la instalación. A pesar de la advertencia, el paquete MASS se instaló correctamente sin necesidad de Rtools. Sin embargo, al intentar instalar Survival, el sistema no lo encontraba porque el nombre correcto del paquete es “survival” en minúsculas. Una vez corregido esto, la instalación se realizó sin problemas.

help(package = "MASS")
help(package = "survival")

Ejercicio 2:

  1. Importad un archivo de texto y buscad un summary() de tres variables que escojáis.
datos <- read.table("C:\\Users\\Usuario\\Documents\\EJERCICIO 1 LAB1 BEATRIZ.txt", header = TRUE, sep = ",", stringsAsFactors = FALSE)
colnames(datos) <- c("Edad", "Peso", "Altura")
str(datos)
## 'data.frame':    3 obs. of  3 variables:
##  $ Edad  : int  12 56 12
##  $ Peso  : int  123 66 40
##  $ Altura: int  187 157 100
head(datos)
##   Edad Peso Altura
## 1   12  123    187
## 2   56   66    157
## 3   12   40    100
    1. Importad un archivo «.csv» y buscad un fivenum() de dos variables que os parezcan relevantes para el estudio.
library(readr)
datos2 <- read.csv("C:/Users/Usuario/Documents/Ejercicio 1 apartado b LAB1 .csv")
str(datos2)
## 'data.frame':    6 obs. of  2 variables:
##  $ Edad: int  12 30 13 55 88 3
##  $ Peso: int  4 63 6 7 12 12
summary(datos2)
##       Edad            Peso      
##  Min.   : 3.00   Min.   : 4.00  
##  1st Qu.:12.25   1st Qu.: 6.25  
##  Median :21.50   Median : 9.50  
##  Mean   :33.50   Mean   :17.33  
##  3rd Qu.:48.75   3rd Qu.:12.00  
##  Max.   :88.00   Max.   :63.00
fivenum(datos2$Edad)
## [1]  3.0 12.0 21.5 55.0 88.0
fivenum(datos2$Peso)
## [1]  4.0  6.0  9.5 12.0 63.0

#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)
head(anorexia)
##   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
str(anorexia)
## 'data.frame':    72 obs. of  3 variables:
##  $ Treat : Factor w/ 3 levels "CBT","Cont","FT": 2 2 2 2 2 2 2 2 2 2 ...
##  $ Prewt : num  80.7 89.4 91.8 74 78.1 88.3 87.3 75.1 80.6 78.4 ...
##  $ Postwt: num  80.2 80.1 86.4 86.3 76.1 78.1 75.1 86.7 73.5 84.6 ...
sum(is.na(anorexia))
## [1] 0
any(sapply(anorexia, is.null))
## [1] FALSE
anorexia$Treat <- factor(anorexia$Treat,
                         levels = c("CBT", "Cont", "FT"),
                         labels = c("Cogn Beh Tr", "Contr", "Fam Tr"))
table(anorexia$Treat)
## 
## Cogn Beh Tr       Contr      Fam Tr 
##          29          26          17

Ejercicio 4:

  1. Exportad los datos biopsy del paquete MASS a un archivo «.csv.»
library(MASS)
write.csv(biopsy, "biopsy.csv", row.names = FALSE)
file.exists("biopsy.csv")
## [1] TRUE

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

data("Melanoma")
head(Melanoma)
##   time status sex age year thickness ulcer
## 1   10      3   1  76 1972      6.76     1
## 2   30      3   1  56 1968      0.65     0
## 3   35      2   1  41 1977      1.34     0
## 4   99      3   0  71 1968      2.90     0
## 5  185      1   1  52 1965     12.08     1
## 6  204      1   1  28 1971      4.84     1
write.csv(Melanoma, "Melanoma.csv", row.names = FALSE)
file.exists("Melanoma.csv")
## [1] TRUE
browseURL("C:/Users/Usuario/OneDrive/Escritorio/Master bioinformatico UOC/Programacion de analisis de datos AULA 2")
write.table(Melanoma, "Melanoma.txt", sep = "\t", row.names = FALSE)
file.exists("Melanoma.txt")
## [1] TRUE
saveRDS(Melanoma, "Melanoma.rds")
file.exists("Melanoma.rds")
## [1] TRUE

c) Generad un resumen (summary) de la variable age de melanoma y guardad la salida que os aparece en un documento .doc

data("Melanoma")
summary_age <- summary(Melanoma$age)
print(summary_age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   42.00   54.00   52.46   65.00   95.00
summary_age <- summary(Melanoma$age)
write(summary_age, file = "summary_age.doc")
file.exists("summary_age.doc")
## [1] TRUE

#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?
library(MASS) 
data("birthwt") 
View(birthwt)
head(birthwt)
##    low age lwt race smoke ptl ht ui ftv  bwt
## 85   0  19 182    2     0   0  0  1   0 2523
## 86   0  33 155    3     0   0  0  0   3 2551
## 87   0  20 105    1     1   0  0  0   1 2557
## 88   0  21 108    1     1   0  0  1   2 2594
## 89   0  18 107    1     1   0  0  1   0 2600
## 91   0  21 124    3     0   0  0  0   0 2622
max(birthwt$age)
## [1] 45
  1. ¿Cuál es la edad mínima de las madres del conjunto de datos?
min(birthwt$age)
## [1] 14
  1. ¿Cuál es el rango de edad de las madres?
library(MASS)
data("birthwt")
rango_edad <- range(birthwt$age, na.rm = TRUE)
print(rango_edad)
## [1] 14 45
  1. ¿Fumaba la madre cuyo recién nacido era el de menor peso?
min_bwt <- min(birthwt$bwt, na.rm = TRUE)
fila_min <- which(birthwt$bwt == min_bwt)
print(birthwt[fila_min, c("bwt", "smoke")])
##   bwt smoke
## 4 709     1
if (birthwt$smoke[fila_min[1]] == 1) {cat("La madre fumaba.\n")} else {cat("La madre no fumaba.\n")}
## La madre fumaba.
  1. ¿Cuánto pesó el recién nacido cuya madre tenía la edad máxima?
max_age <- max(birthwt$age, na.rm = TRUE)
fila_max <- which(birthwt$age == max_age)
print(birthwt[fila_max, c("age", "bwt")])
##     age  bwt
## 226  45 4990
cat("El peso del recién nacido es:", birthwt$bwt[fila_max[1]], "\n")
## El peso del recién nacido es: 4990
  1. Listad los pesos de los recién nacidos, cuyas madres visitarán menos de dos veces al médico durante el primer trimestre.
subset_ftv <- subset(birthwt, ftv < 2)
pesos <- subset_ftv$bwt
print(pesos)
##   [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

#Ejercico 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")
mat_anorexia <- as.matrix(anorexia[, c("Prewt", "Postwt")])
mat_anorexia
##    Prewt Postwt
## 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
## 7   87.3   75.1
## 8   75.1   86.7
## 9   80.6   73.5
## 10  78.4   84.6
## 11  77.6   77.4
## 12  88.7   79.5
## 13  81.3   89.6
## 14  78.1   81.4
## 15  70.5   81.8
## 16  77.3   77.3
## 17  85.2   84.2
## 18  86.0   75.4
## 19  84.1   79.5
## 20  79.7   73.0
## 21  85.5   88.3
## 22  84.4   84.7
## 23  79.6   81.4
## 24  77.5   81.2
## 25  72.3   88.2
## 26  89.0   78.8
## 27  80.5   82.2
## 28  84.9   85.6
## 29  81.5   81.4
## 30  82.6   81.9
## 31  79.9   76.4
## 32  88.7  103.6
## 33  94.9   98.4
## 34  76.3   93.4
## 35  81.0   73.4
## 36  80.5   82.1
## 37  85.0   96.7
## 38  89.2   95.3
## 39  81.3   82.4
## 40  76.5   72.5
## 41  70.0   90.9
## 42  80.4   71.3
## 43  83.3   85.4
## 44  83.0   81.6
## 45  87.7   89.1
## 46  84.2   83.9
## 47  86.4   82.7
## 48  76.5   75.7
## 49  80.2   82.6
## 50  87.8  100.4
## 51  83.3   85.2
## 52  79.7   83.6
## 53  84.5   84.6
## 54  80.8   96.2
## 55  87.4   86.7
## 56  83.8   95.2
## 57  83.3   94.3
## 58  86.0   91.5
## 59  82.5   91.9
## 60  86.7  100.3
## 61  79.6   76.7
## 62  76.9   76.8
## 63  94.2  101.6
## 64  73.4   94.9
## 65  80.5   75.2
## 66  81.6   77.8
## 67  82.1   95.5
## 68  77.6   90.7
## 69  83.5   92.5
## 70  89.9   93.8
## 71  86.0   91.7
## 72  87.3   98.0

#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:

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Í
  1. Seleccionad los registros con edad > 22.
subset_edad <- subset(Trat_Pulmon, Edad > 22)
subset_edad
##    Identificador Edad Sexo  Peso Alt Fuma
## 1             I1   23    1  76.5 165   SÍ
## 2             I2   24    2  81.2 154   NO
## 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Í
## 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Í
## 17           I17   25    1  65.4 182   NO
## 18           I18   26    2  73.7 179   NO
## 19           I19   24    2  85.1 165   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Í
## 25           I25   29    2  85.0 175   SÍ
  1. Seleccionad el elemento 3 de la columna 4 del conjunto de datos (contando el identificador).
elemento <- Trat_Pulmon[3, 4]
elemento
## [1] 79.3
  1. Usad el comando subset() para seleccionar todas las filas que tienen una edad menor que 27 años y sin incluir la columna Alt.
subset_sin_alt <- subset(Trat_Pulmon, Edad < 27, select = -Alt)
subset_sin_alt
##    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). a) Incorporad el conjunto de datos ChickWeight del paquete datasets a vuestro entorno de trabajo.

data("ChickWeight", package = "datasets")
head(ChickWeight)
##   weight Time Chick Diet
## 1     42    0     1    1
## 2     51    2     1    1
## 3     59    4     1    1
## 4     64    6     1    1
## 5     76    8     1    1
## 6     93   10     1    1
  1. Generad un gráfico de dispersión de la variable weight.
plot(ChickWeight$weight, 
     main = "Gráfico de dispersión de 'weight'",
     xlab = "Índice de observación", 
     ylab = "Peso (gramos)",
     pch = 19, 
     col = "blue")

  1. Cread un diagrama de caja con la variable Time.
boxplot(ChickWeight$Time, 
        main = "Diagrama de caja de la variable Time",
        ylab = "Time (días)",
        col = "green")

#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")
peso_cambio <- anorexia$Prewt - anorexia$Postwt
anorexia_treat_df <- data.frame(Treat = anorexia$Treat, cambio = peso_cambio)
anorexia_treat_df
##    Treat cambio
## 1   Cont    0.5
## 2   Cont    9.3
## 3   Cont    5.4
## 4   Cont  -12.3
## 5   Cont    2.0
## 6   Cont   10.2
## 7   Cont   12.2
## 8   Cont  -11.6
## 9   Cont    7.1
## 10  Cont   -6.2
## 11  Cont    0.2
## 12  Cont    9.2
## 13  Cont   -8.3
## 14  Cont   -3.3
## 15  Cont  -11.3
## 16  Cont    0.0
## 17  Cont    1.0
## 18  Cont   10.6
## 19  Cont    4.6
## 20  Cont    6.7
## 21  Cont   -2.8
## 22  Cont   -0.3
## 23  Cont   -1.8
## 24  Cont   -3.7
## 25  Cont  -15.9
## 26  Cont   10.2
## 27   CBT   -1.7
## 28   CBT   -0.7
## 29   CBT    0.1
## 30   CBT    0.7
## 31   CBT    3.5
## 32   CBT  -14.9
## 33   CBT   -3.5
## 34   CBT  -17.1
## 35   CBT    7.6
## 36   CBT   -1.6
## 37   CBT  -11.7
## 38   CBT   -6.1
## 39   CBT   -1.1
## 40   CBT    4.0
## 41   CBT  -20.9
## 42   CBT    9.1
## 43   CBT   -2.1
## 44   CBT    1.4
## 45   CBT   -1.4
## 46   CBT    0.3
## 47   CBT    3.7
## 48   CBT    0.8
## 49   CBT   -2.4
## 50   CBT  -12.6
## 51   CBT   -1.9
## 52   CBT   -3.9
## 53   CBT   -0.1
## 54   CBT  -15.4
## 55   CBT    0.7
## 56    FT  -11.4
## 57    FT  -11.0
## 58    FT   -5.5
## 59    FT   -9.4
## 60    FT  -13.6
## 61    FT    2.9
## 62    FT    0.1
## 63    FT   -7.4
## 64    FT  -21.5
## 65    FT    5.3
## 66    FT    3.8
## 67    FT  -13.4
## 68    FT  -13.1
## 69    FT   -9.0
## 70    FT   -3.9
## 71    FT   -5.7
## 72    FT  -10.7
anorexia_treat_ganado <- subset(anorexia_treat_df, cambio < 0)
anorexia_treat_ganado
##    Treat cambio
## 4   Cont  -12.3
## 8   Cont  -11.6
## 10  Cont   -6.2
## 13  Cont   -8.3
## 14  Cont   -3.3
## 15  Cont  -11.3
## 21  Cont   -2.8
## 22  Cont   -0.3
## 23  Cont   -1.8
## 24  Cont   -3.7
## 25  Cont  -15.9
## 27   CBT   -1.7
## 28   CBT   -0.7
## 32   CBT  -14.9
## 33   CBT   -3.5
## 34   CBT  -17.1
## 36   CBT   -1.6
## 37   CBT  -11.7
## 38   CBT   -6.1
## 39   CBT   -1.1
## 41   CBT  -20.9
## 43   CBT   -2.1
## 45   CBT   -1.4
## 49   CBT   -2.4
## 50   CBT  -12.6
## 51   CBT   -1.9
## 52   CBT   -3.9
## 53   CBT   -0.1
## 54   CBT  -15.4
## 56    FT  -11.4
## 57    FT  -11.0
## 58    FT   -5.5
## 59    FT   -9.4
## 60    FT  -13.6
## 63    FT   -7.4
## 64    FT  -21.5
## 67    FT  -13.4
## 68    FT  -13.1
## 69    FT   -9.0
## 70    FT   -3.9
## 71    FT   -5.7
## 72    FT  -10.7
anorexia_treat_C_df <- subset(anorexia_treat_df, Treat == "Cont" & cambio < 0)
anorexia_treat_C_df
##    Treat cambio
## 4   Cont  -12.3
## 8   Cont  -11.6
## 10  Cont   -6.2
## 13  Cont   -8.3
## 14  Cont   -3.3
## 15  Cont  -11.3
## 21  Cont   -2.8
## 22  Cont   -0.3
## 23  Cont   -1.8
## 24  Cont   -3.7
## 25  Cont  -15.9

#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: