Ejercicio 1
# Comprobamos los paquetes instalados.
library()
# Instalamos los paquetes requeridos.
options(repos = c(CRAN = "https://cloud.r-project.org"))
install.packages("MASS")
## Installing package into 'C:/Users/jorge/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'MASS' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'MASS'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\jorge\AppData\Local\R\win-library\4.5\00LOCK\MASS\libs\x64\MASS.dll a
## C:\Users\jorge\AppData\Local\R\win-library\4.5\MASS\libs\x64\MASS.dll:
## Permission denied
## Warning: restored 'MASS'
##
## The downloaded binary packages are in
## C:\Users\jorge\AppData\Local\Temp\RtmpqmYj5y\downloaded_packages
install.packages("survival")
## Installing package into 'C:/Users/jorge/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'survival' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\jorge\AppData\Local\Temp\RtmpqmYj5y\downloaded_packages
# Accedemos a la información de los paquetes.
packageDescription("MASS")
## 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.1; x86_64-w64-mingw32; 2025-10-06 00:50:00 UTC; windows
## Archs: x64
##
## -- File: C:/Users/jorge/AppData/Local/R/win-library/4.5/MASS/Meta/package.rds
packageDescription("survival")
## Title: Survival Analysis
## Priority: recommended
## Package: survival
## Version: 3.8-3
## Date: 2024-12-17
## 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: 2024-12-17 16:37:18 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: 2024-12-17 20:20:02 UTC
## Built: R 4.5.1; x86_64-w64-mingw32; 2025-10-06 01:53:08 UTC; windows
## Archs: x64
##
## -- File: C:/Users/jorge/AppData/Local/R/win-library/4.5/survival/Meta/package.rds
# Buscamos información sobre el paquete Rcmdr
??Rcmdr
## starting httpd help server ...
## done
Ejercicio 2
# Analizamos el archivo
library(readr)
txt <- read.csv("C:/Users/jorge/OneDrive/Universidad/anorexia.csv")
summary(txt)
## Treat Prewt Postwt
## Length:72 Min. :70.00 Min. : 71.30
## Class :character 1st Qu.:79.60 1st Qu.: 79.33
## Mode :character Median :82.30 Median : 84.05
## Mean :82.41 Mean : 85.17
## 3rd Qu.:86.00 3rd Qu.: 91.55
## Max. :94.90 Max. :103.60
# Importamos el archivo .csv y se analiza
csv <- read.csv("C:/Users/jorge/OneDrive/Universidad/anorexia.csv")
fivenum(csv$Prewt)
## [1] 70.0 79.6 82.3 86.0 94.9
fivenum(csv$Postwt)
## [1] 71.30 79.15 84.05 91.60 103.60
Ejercicio 3
# Consultamos los tipos de datos que contiene el set de datos.
library(MASS)
data(anorexia)
dim(anorexia)
## [1] 72 3
# Buscamos si hay valores NULL y NA
table(is.null(anorexia))
##
## FALSE
## 1
table(is.na(anorexia))
##
## FALSE
## 216
# Definimos las etiquetas que queremos modificar y cuál es el cambio que queremos hacer. Para ello se utiliza factor, levels y labels.
anorexia_2 = factor(anorexia$Treat, levels = c("CBT", "Cont", "FT"), labels = c("Cogn Beh Tr", "Contr", "Fam Tr"))
anorexia_2
## [1] Contr Contr Contr Contr Contr Contr
## [7] Contr Contr Contr Contr Contr Contr
## [13] Contr Contr Contr Contr Contr Contr
## [19] Contr Contr Contr Contr Contr Contr
## [25] Contr Contr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [31] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [37] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [43] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [49] Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr Cogn Beh Tr
## [55] Cogn Beh Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## [61] Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## [67] Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr Fam Tr
## Levels: Cogn Beh Tr Contr Fam Tr
Ejercicio 4
# a) Exporto los datos al csv "biopsy.csv"
library(MASS)
data("biopsy")
write.csv(biopsy, file = "C:/Users/jorge/OneDrive/Universidad/Máster/Bioinfo/1er cuatri/Software para análisis datos/Reto 1/Actividades/biopsy.csv")
# b) Creo 1 archivo txt, otro csv y otro SPSS
data("Melanoma")
write.table(Melanoma, "Archivos crear/melanoma.txt")
write.csv(Melanoma, file = "Archivos crear/melanoma.csv")
library(foreign)
write.foreign(Melanoma, "Archivos crear/melanoma.spss", codefile = "Archivos crear/melanoma.sps", package = "SPSS")
# c)
resumen_age = summary(Melanoma$age)
capture.output(resumen_age, file = "Archivos crear/resumen_age.doc")
# d)
refseq <- read.csv("Archivos crear/refseq-genbank.csv")
Ejercicio 5
data("birthwt")
?birthwt
# a)
max(birthwt$age)
## [1] 45
# b)
min(birthwt$age)
## [1] 14
# c)
range(birthwt$age)
## [1] 14 45
# d) Si se obtiene 1 significa que la madre fumaba, y un 0 significa que no
birthwt$smoke[birthwt$bwt==min(birthwt$bwt)]
## [1] 1
# e)
birthwt$bwt[birthwt$age==max(birthwt$age)]
## [1] 4990
# f)
birthwt$bwt[birthwt$ftv<2]
## [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
Ejercicio 6
data("anorexia")
prewt <- anorexia$Prewt
postwt <- anorexia$Postwt
matriz <- matrix(prewt, postwt, ncol = 2)
## Warning in matrix(prewt, postwt, ncol = 2): data length [72] is not a
## sub-multiple or multiple of the number of rows [80]
head(matriz)
## [,1] [,2]
## [1,] 80.7 80.6
## [2,] 89.4 78.4
## [3,] 91.8 77.6
## [4,] 74.0 88.7
## [5,] 78.1 81.3
## [6,] 88.3 78.1
Ejercicio 7
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Í
# a)
edad_22 <- subset(Trat_Pulmon, Edad>22)
# b)
Trat_Pulmon[3,4]
## [1] 79.3
# c)
menor_27 <- subset(Trat_Pulmon, Edad < 27, select = -c(Alt))
Ejercicio 8
# a)
data("ChickWeight")
# b) Usamos plot y modificamos el gráfico
plot(ChickWeight$weight, main = "Peso vs Tiempo", ylab = "Peso", xlab = "Tiempo")
# c) En este caso se utiliza boxplot
boxplot(ChickWeight$Time, ylab = "Tiempo" )
Ejercicio 9
library(MASS)
data("anorexia")
# Creamos los 2 vectores que formaran parte del nuevo data frame
vect <- (anorexia$Prewt - anorexia$Postwt)
treat <- subset(anorexia, select = c(Treat))
# Creamos el nuevo data frame
anorexia_treat_df <- data.frame (treat, vect)
anorexia_treat_df
## Treat vect
## 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
# Creamos el data frame con las condiciones dadas: que haya aumentado peso y que han seguido el tratamiento "Cont"
anorexia_treat_C_df <- subset(anorexia_treat_df, anorexia_treat_df$Treat == "Cont" & anorexia_treat_df$vect > 0)
anorexia_treat_C_df
## Treat vect
## 1 Cont 0.5
## 2 Cont 9.3
## 3 Cont 5.4
## 5 Cont 2.0
## 6 Cont 10.2
## 7 Cont 12.2
## 9 Cont 7.1
## 11 Cont 0.2
## 12 Cont 9.2
## 17 Cont 1.0
## 18 Cont 10.6
## 19 Cont 4.6
## 20 Cont 6.7
## 26 Cont 10.2
Ejercicio 10
Enlace a RPubs: