R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

LAB 1

Soluciones Ejercicio 1

install.packages(c(“MASS”,“Survival”)) #instalo los paquetes pedidos

sessionInfo()     #para ver la versión de R y qué paquetes tengo cargados
## R version 4.5.1 (2025-06-13 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26100)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Spain.utf8  LC_CTYPE=Spanish_Spain.utf8   
## [3] LC_MONETARY=Spanish_Spain.utf8 LC_NUMERIC=C                  
## [5] LC_TIME=Spanish_Spain.utf8    
## 
## time zone: Europe/Madrid
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] digest_0.6.37     R6_2.6.1          fastmap_1.2.0     xfun_0.53        
##  [5] cachem_1.1.0      knitr_1.50        htmltools_0.5.8.1 rmarkdown_2.30   
##  [9] lifecycle_1.0.4   cli_3.6.5         sass_0.4.10       jquerylib_0.1.4  
## [13] compiler_4.5.1    rstudioapi_0.17.1 tools_4.5.1       evaluate_1.0.5   
## [17] bslib_0.9.0       yaml_2.3.10       rlang_1.1.6       jsonlite_2.0.0
library()         #informa de paquetes instalados y su ruta de ubicación
packageDescription("Rcmdr")   #veo la información del paquete Rcommander
## Warning in packageDescription("Rcmdr"): no package 'Rcmdr' was found
## [1] NA

Soluciones Ejercicio 2

a) lo he importado desde el menú de la ventana derecha superior

LAB1.Ejercicio2 #veo los datos importados, es una matriz #ya que son todos del mismo tipo, character #los logro importar pero falla al Insert Chunk summary(LAB1.Ejercicio2)

b) en esta ocasión importo con código

getwd() library(readr) datasets <- read_csv(“C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/LAB1Ejercicio2.csv”, sep=““)#como da error lo intento con read.csv read.csv(”C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/LAB1Ejercicio2.csv”, sep=““) View(datasets) # lo reconoce con 1 variable, habiendo realmente 5, con logro que reconoca las 5 columnas View(LAB1Ejercicio2.csv) #no reconoce el objeto

Soluciones Ejercicio 3

library("MASS")  #cargo el paquete MASS 
data("anorexia") #cargo los datos anorexia
View(anorexia)  #veo que es un data frame
str(anorexia)   #tiene 72 observaciones de 3 variables (un factor y dos numéricas)
## '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 ...
table(is.na(anorexia)) #al ser FALSE en los 216 registros (72 filas x 3 columnas) no hay ningún NA
## 
## FALSE 
##   216
table(is.null(anorexia)) #al ser FALSE no hay ningún dato nulo
## 
## FALSE 
##     1
anorexia_F<- factor(anorexia$Treat,levels=c("CBT","Cont","FT"),labels=c("Cogn Beh Tr","Contr","Fam Tr")) #cambio el nombre de los tres niveles de Treat
anorexia_F
##  [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

Soluciones Ejecicio 4

a)

data("biopsy")
write.csv(biopsy, "C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/biopsy.csv")

b)

data("melanoma") #la M debe ser mayúscula
## Warning in data("melanoma"): data set 'melanoma' not found
data("Melanoma")
library(xlsx)  #cargo para poder expodtar en excel, y exporto los tres tipos de archivos
write.table(Melanoma,"C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/mel.txt")
write.csv(Melanoma, "C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/mel.csv")
write.xlsx(Melanoma, "C:/Users/User/OneDrive/Escritorio/MASTER UOC/Software para el análisis de datos/LAB1 y 2/mel.xlsx")

c)

summary(Melanoma$age) #para exportar primero tendria que exportar a .txt y convertirlo a .doc
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.00   42.00   54.00   52.46   65.00   95.00

Soluciones Ejercicio 5

data("birthwt")
View(birthwt)

a) máximo edad b) mínima edad y c) rango

max(birthwt$age)
## [1] 45
min(birthwt$age)
## [1] 14
range(birthwt$age)
## [1] 14 45

d) e) y f)

birthwt$smoke[birthwt$bwt==min(birthwt$bwt)]
## [1] 1
birthwt$bwt[birthwt$age==max(birthwt$age)]
## [1] 4990
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

Soluciones Ejercicio 6

library(MASS)
data(anorexia)
sol6<-matrix(c(anorexia$Prewt,anorexia$Postwt),ncol=2)
head(sol6)
##      [,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

Soluciones 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

a) Mayores de 22 años

Trat_Pulmon
Mas22edad<-subset(Trat_Pulmon, Edad>22)
Mas22edad

b) seleccionar el elemento 3 de la columna 4

Trat_Pulmon[3,4]
## [1] 79.3

c) seleccionar las filas de menor de 27 excluyendo Alt

Menos27edad<-subset(Trat_Pulmon, Edad<27, select = -c(Alt))
Menos27edad

Soluciones Ejercicio 8

a) Incorporar el datasets

plot(ChickWeight$weight)

boxplot(ChickWeight$Time)

Soluciones Ejercicio 9

data("anorexia")
head(anorexia)
dif<-c(anorexia$Postwt-anorexia$Prewt)
dif
##  [1]  -0.5  -9.3  -5.4  12.3  -2.0 -10.2 -12.2  11.6  -7.1   6.2  -0.2  -9.2
## [13]   8.3   3.3  11.3   0.0  -1.0 -10.6  -4.6  -6.7   2.8   0.3   1.8   3.7
## [25]  15.9 -10.2   1.7   0.7  -0.1  -0.7  -3.5  14.9   3.5  17.1  -7.6   1.6
## [37]  11.7   6.1   1.1  -4.0  20.9  -9.1   2.1  -1.4   1.4  -0.3  -3.7  -0.8
## [49]   2.4  12.6   1.9   3.9   0.1  15.4  -0.7  11.4  11.0   5.5   9.4  13.6
## [61]  -2.9  -0.1   7.4  21.5  -5.3  -3.8  13.4  13.1   9.0   3.9   5.7  10.7
newanor<-data.frame(anorexia, dif)
head(newanor)
anorexia_treat_C_df<-subset(newanor, newanor$Treat=="Cont"&newanor$dif<0)
head(anorexia_treat_C_df)

Solución Ejercicio 10

Caso práctico

##a)

Id<-(1:30)
Edad<-round(rnorm(30, mean = 40, sd = 15)) #edad aleatoria
Gene<-sample(c(rep(1,15),rep(2,15)))
Trat<-sample(c("A", "B", "C"), size = 30, replace = TRUE)
Peso<-round(rnorm(30, mean = 70, sd = 20))
Alt<-round(rnorm(30, mean = 155, sd = 30))

Inventado<-data.frame(Id,Edad, Gene,Trat, Peso, Alt)
head(Inventado)

b)

summary(Inventado)
##        Id             Edad           Gene         Trat          
##  Min.   : 1.00   Min.   : 8.0   Min.   :1.0   Length:30         
##  1st Qu.: 8.25   1st Qu.:31.0   1st Qu.:1.0   Class :character  
##  Median :15.50   Median :37.5   Median :1.5   Mode  :character  
##  Mean   :15.50   Mean   :38.3   Mean   :1.5                     
##  3rd Qu.:22.75   3rd Qu.:45.0   3rd Qu.:2.0                     
##  Max.   :30.00   Max.   :75.0   Max.   :2.0                     
##       Peso             Alt       
##  Min.   : 33.00   Min.   : 95.0  
##  1st Qu.: 52.75   1st Qu.:142.0  
##  Median : 66.50   Median :156.0  
##  Mean   : 69.97   Mean   :157.4  
##  3rd Qu.: 85.00   3rd Qu.:169.0  
##  Max.   :116.00   Max.   :219.0

c)

IMC<-c(Peso/(Alt^2))
IMC
##  [1] 0.001822222 0.001609645 0.001957168 0.003105429 0.001430238 0.003593750
##  [7] 0.001897453 0.001338797 0.002304687 0.002272680 0.006426593 0.002446460
## [13] 0.002291303 0.001300728 0.002173354 0.003124812 0.006180404 0.002072484
## [19] 0.005486258 0.003655884 0.004265027 0.003029778 0.004412071 0.004635649
## [25] 0.002652392 0.002727633 0.003645249 0.002014591 0.005704011 0.001906774
Inventado2<-data.frame(Inventado, IMC)
Inventado2
View(Inventado2)

d)

Df_Hombres<-subset(Inventado2, Gene==1)
Df_Hombres
Df_Mujeres<-subset(Inventado2, Gene==2)
Df_Mujeres

e)

Nuevoinventado<-rbind(Df_Hombres, Df_Mujeres)
Nuevoinventado