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.
# Comprobamos qué paquetes tenemos instalados
library()
print(.packages(all.available = TRUE)[1:25]) # Un ejemplo de los 25 primeros
## [1] "abind" "ade4" "agricolae" "AlgDesign"
## [5] "anytime" "aplpack" "arm" "askpass"
## [9] "assertthat" "backports" "base64enc" "BayesFactor"
## [13] "bayesplot" "bayestestR" "bench" "bestNormalize"
## [17] "BH" "bigD" "Biobase" "BiocGenerics"
## [21] "BiocManager" "BiocVersion" "bit" "bit64"
## [25] "bitops"
# Instalamos el paquete MASS y el paquete Survival
install.packages("MASS")
install.packages("survival")
# Hay diferentes formas de buscar información de los paquetes en R
# Por ejemplo, el comando 'help' ayuda a obtener la información detallada sobre los paquetes
help(package = "MASS") # Muestra la documentación general del paquete MASS
help(package = "survival") # Muestra la documentación general del paquete Survival
# Por otra parte, el comando 'packageDescription' ayuda a obtener una breve descripción del paquete
packageDescription("MASS") # Muestra la descripción del paquete MASS
packageDescription("survival") # Muestra la descripción del paquete Survival
Buscad información sobre el paquete Rcmdr (R Commander) desde la consola.
# Aunque en la solución del ejercicio se especifica el uso del siguiente comando
??Rcmdr
# También se puede usar el comando 'help' para buscar la información
help(package = "Rcmdr")
# Importamos la librería del paquete 'readr' la cual es una versión actualizada de la que sale en los apuntes
library(readr)
# Tras haber creado un archivo de manera externa, utilizamos la función 'read_csv' para cargar el archivo ya que en esta versión del paquete no existe 'read.txt'
archivo_txt <- read_csv("archivo_txt.txt")
# Imprimimos en la consola un resumen de las variables
print(archivo_txt)
## # A tibble: 5 × 8
## ID Nombre Edad Ciudad Peso Altura Presion_Arterial Glucosa
## <dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 1 Ana 25 Madrid 55 1.65 12080 90
## 2 2 Beto 30 Barcelona 78 1.75 13085 95
## 3 3 Carlos 22 Valencia 68 1.8 11075 85
## 4 4 Diana 28 Sevilla 60 1.68 12582 92
## 5 5 Elena 35 Bilbao 72 1.7 13588 98
#Realizamos el 'summary' de tres variables:
#Peso
summary(archivo_txt$Peso)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 55.0 60.0 68.0 66.6 72.0 78.0
#Edad
summary(archivo_txt$Edad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 22 25 28 28 30 35
#Altura
summary(archivo_txt$Altura)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.650 1.680 1.700 1.716 1.750 1.800
# También se puede obtener en conjunto el 'summary' de todas las variables ejecutando el comando para toda la tabla
summary(archivo_txt)
## ID Nombre Edad Ciudad Peso
## Min. :1 Length:5 Min. :22 Length:5 Min. :55.0
## 1st Qu.:2 Class :character 1st Qu.:25 Class :character 1st Qu.:60.0
## Median :3 Mode :character Median :28 Mode :character Median :68.0
## Mean :3 Mean :28 Mean :66.6
## 3rd Qu.:4 3rd Qu.:30 3rd Qu.:72.0
## Max. :5 Max. :35 Max. :78.0
## Altura Presion_Arterial Glucosa
## Min. :1.650 Min. :11075 Min. :85
## 1st Qu.:1.680 1st Qu.:12080 1st Qu.:90
## Median :1.700 Median :12582 Median :92
## Mean :1.716 Mean :12482 Mean :92
## 3rd Qu.:1.750 3rd Qu.:13085 3rd Qu.:95
## Max. :1.800 Max. :13588 Max. :98
# Tras haber creado un archivo de manera externa, utilizamos la función 'read_csv' para cargar el archivo.
archivo_csv <- read_csv("archivo_csv.csv")
# Imprimimos en la consola un resumen de las variables
print(archivo_csv)
## # A tibble: 10 × 10
## ID Nombre Edad Ciudad Peso Altura Presion_Arterial Glucosa Colesterol
## <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <dbl>
## 1 1 Ana 25 Madrid 55 1.65 120/80 90 180
## 2 2 Beto 30 Barce… 78 1.75 130/85 95 190
## 3 3 Carlos 22 Valen… 68 1.8 110/75 85 170
## 4 4 Diana 28 Sevil… 60 1.68 125/82 92 185
## 5 5 Elena 35 Bilbao 72 1.7 135/88 98 200
## 6 6 Francisco 40 Zarag… 85 1.78 140/90 105 210
## 7 7 Gloria 50 Murcia 70 1.6 145/95 110 220
## 8 8 Hugo 33 Grana… 90 1.82 135/87 97 195
## 9 9 Isabel 45 Alica… 65 1.67 128/83 94 175
## 10 10 Jose 29 Oviedo 76 1.74 122/79 88 165
## # ℹ 1 more variable: Frecuencia_Cardiaca <dbl>
# Realizamos un 'fivenum' de dos variables:
# Colesterol
fivenum(archivo_csv$Colesterol)
## [1] 165.0 175.0 187.5 200.0 220.0
# Glucosa
fivenum(archivo_csv$Colesterol)
## [1] 165.0 175.0 187.5 200.0 220.0
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.
# Importamos la librería del paquete 'MASS'. En el caso de que no este instalado usamos install.packages("MASS").
library("MASS")
# Cargamos los datos del conjunto de datos llamado 'anorexia'
data("anorexia")
#Mostramos cuantos valores 'NA' hay
table(is.na(anorexia))
##
## FALSE
## 216
#Mostramos cuantos valores 'NULL' hay
table(is.null(anorexia))
##
## FALSE
## 1
# Definimos etiquetas para los valores especificados
anorexia$Treat <- factor(anorexia$Treat,levels=c("CBT","Cont","FT"),labels=c("Cogn Beh Tr","Contr","Fam Tr"))
# Vemos si los niveles de estos factores han cambiado
levels(anorexia$Treat)
## [1] "Cogn Beh Tr" "Contr" "Fam Tr"
# Cargamos los datos del conjunto de datos llamado 'anorexia'. En esta ocasión no es necesario volver a llamar al paquete MASS
data("biopsy")
# Exportamos los datos de biopsy al formato “.csv”. El archivo se guardará en la en la ruta asignada
write.csv(biopsy, file = "D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/biopsy.csv")
# Cargamos los datos del conjunto de datos llamado 'anorexia'. En esta ocasión no es necesario volver a llamar al paquete MASS
data("Melanoma")
# Importamos en 3 formatos diferentes:
# CSV
write_csv(Melanoma, file = "D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/Melanoma.csv")
# TSV
write_tsv(Melanoma, file = "D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/Melanoma.tvs")
# TXT
write.table(Melanoma, file = "D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/Melanoma.txt")
doc_document = summary(Melanoma$age)
capture.output(doc_document, file="D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/Melanoma$age.doc")
Prueba:
# El dataframe seleccionado ha sido descargado de: https://archive.ics.uci.edu/datasets y cuyo DOI se corresponde con: https://doi.org/10.24432/C5DK8H
# Importamos del CSV
TestPad_PCB_XYRGB_V2 <- read.csv("D:/Esteban/Vida Academica/Master de Bioinformatica y bioestadistica/Software para el analisis de datos (R)/Laboratorio 1 y 2/Practicas/TestPad_PCB_XYRGB_V2.csv", header = TRUE, sep = ",", stringsAsFactors = FALSE)
# Comprobamos si ha sido importado. Si la respuesta es TRUE es por que el archivo se encuentra en la ventana 'Environment'
exists("TestPad_PCB_XYRGB_V2")
## [1] TRUE
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:
# Cargamos los datos del conjunto de datos llamado 'birthwt'. En esta ocasión no es necesario volver a llamar al paquete MASS
data("birthwt")
# Solución. Usamos la función 'max' para encontrar el valor máximo
max(birthwt$age)
## [1] 45
# Solución. Usamos la función 'min' para encontrar el valor mínimo
min(birthwt$age)
## [1] 14
# Solución. Restamos el valor mínimo al valor máximo
max(birthwt$age)-min(birthwt$age)
## [1] 31
# Solución. Seleccionamos el valor de la columna 'smoke' que es igual al valor mínimo de la columna 'btw'
birthwt$smoke[birthwt$bwt == min(birthwt$bwt)]
## [1] 1
# Solución. Seleccionamos el valor de la columna 'btw' que es igual al valor máximo de la columna 'age'
birthwt$bwt[birthwt$age == max(birthwt$age)]
## [1] 4990
# Solución. Seleccionamos los valores de la columna 'btw' que son menores o iguales a2 de la columna 'ftv'
birthwt$bwt[birthwt$ftv<=2]
## [1] 2523 2557 2594 2600 2622 2637 2637 2663 2665 2722 2733 2751 2750 2769 2769
## [16] 2778 2807 2821 2835 2836 2863 2877 2877 2906 2920 2920 2920 2920 2948 2948
## [31] 2977 2977 2977 2977 2922 3005 3033 3042 3062 3062 3062 3062 3062 3090 3090
## [46] 3090 3100 3104 3132 3147 3175 3175 3203 3203 3203 3225 3225 3232 3232 3234
## [61] 3260 3274 3274 3317 3317 3317 3321 3331 3374 3374 3402 3416 3444 3459 3460
## [76] 3473 3544 3487 3544 3572 3572 3586 3600 3614 3614 3629 3629 3637 3643 3651
## [91] 3651 3651 3651 3699 3728 3756 3770 3770 3770 3790 3799 3827 3856 3860 3884
## [106] 3884 3912 3940 3941 3941 3969 3983 3997 3997 4054 4054 4111 4153 4167 4174
## [121] 4238 4593 4990 709 1021 1135 1330 1474 1588 1588 1701 1729 1790 1818 1885
## [136] 1893 1899 1928 1928 1928 1936 1970 2055 2055 2082 2084 2084 2100 2125 2187
## [151] 2187 2211 2225 2240 2240 2282 2296 2296 2325 2353 2353 2367 2381 2381 2381
## [166] 2410 2410 2410 2424 2438 2442 2466 2466 2466 2495 2495 2495
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.
#Creamos la matriz
matriz_anorexia <- matrix(c(anorexia$Prewt,anorexia$Postwt),ncol=2)
# Mostramos los primeros resultados
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
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:
# Creamos el data frame
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)
# Mostramos los primeros resultados
head(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