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.
Para visualizar los paquetes que tengo instalados en mi RStudio y la ruta de estas, utilizo la siguiente función:
library()
Esta función abre una ventana nueva con los paquetes titulada “Packages in library ‘C:/Users/Usuario/AppData/Local/R/win-library/4.6’:”.
Otra forma de visualizar los paquetes instalados es la siguiente:
print(rownames(installed.packages()))
## [1] "abind" "askpass" "backports" "base64enc"
## [5] "bit" "bit64" "blob" "broom"
## [9] "bslib" "cachem" "callr" "car"
## [13] "carData" "cellranger" "checkmate" "cli"
## [17] "clipr" "colorspace" "conflicted" "corrplot"
## [21] "cowplot" "cpp11" "crayon" "curl"
## [25] "data.table" "DBI" "dbplyr" "Deriv"
## [29] "digest" "doBy" "dplyr" "dtplyr"
## [33] "evaluate" "farver" "fastmap" "fontawesome"
## [37] "forcats" "forecast" "Formula" "fracdiff"
## [41] "fs" "gargle" "generics" "ggplot2"
## [45] "ggpubr" "ggrepel" "ggsci" "ggsignif"
## [49] "glue" "googledrive" "googlesheets4" "gridExtra"
## [53] "gtable" "haven" "highr" "Hmisc"
## [57] "hms" "htmlTable" "htmltools" "htmlwidgets"
## [61] "httr" "httr2" "ids" "isoband"
## [65] "jose" "jquerylib" "jsonlite" "knitr"
## [69] "labeling" "lifecycle" "lme4" "lmtest"
## [73] "lubridate" "magrittr" "MASS" "MatrixModels"
## [77] "memoise" "mime" "minqa" "modelr"
## [81] "nloptr" "numDeriv" "openssl" "openxlsx"
## [85] "otel" "packrat" "pbkrtest" "pillar"
## [89] "pkgconfig" "polynom" "prettyunits" "processx"
## [93] "progress" "ps" "purrr" "quantreg"
## [97] "R6" "ragg" "rappdirs" "rbibutils"
## [101] "RColorBrewer" "Rcpp" "RcppArmadillo" "RcppEigen"
## [105] "RcppTOML" "Rdpack" "readr" "readxl"
## [109] "reformulas" "rematch" "rematch2" "renv"
## [113] "reprex" "rJava" "rlang" "rmarkdown"
## [117] "rsconnect" "rstatix" "rstudioapi" "rvest"
## [121] "S7" "sass" "scales" "selectr"
## [125] "sm" "snowflakeauth" "SparseM" "stringi"
## [129] "stringr" "survival" "sys" "systemfonts"
## [133] "textshaping" "tibble" "tidyr" "tidyselect"
## [137] "tidyverse" "timechange" "timeDate" "tinytex"
## [141] "tzdb" "urca" "utf8" "uuid"
## [145] "vctrs" "vioplot" "viridisLite" "vroom"
## [149] "withr" "xfun" "xlsx" "xlsxjars"
## [153] "xml2" "yaml" "zip" "zoo"
## [157] "base" "boot" "class" "cluster"
## [161] "codetools" "compiler" "datasets" "foreign"
## [165] "graphics" "grDevices" "grid" "KernSmooth"
## [169] "lattice" "MASS" "Matrix" "methods"
## [173] "mgcv" "nlme" "nnet" "parallel"
## [177] "rpart" "spatial" "splines" "stats"
## [181] "stats4" "survival" "tcltk" "tools"
## [185] "translations" "utils"
A continuación, instalamos el paquete MASS y survival, y comprobamos la información que contienen:
# 1. Instalamos los paquetes
install.packages(c("MASS", "survival"))
# 2. Cargamos los paquetes
library("MASS")
library("survival")
# 3. Analizamos la información que contiene cada paquete
data(package = "MASS") #abre una nueva ventana con información sobre "Data sets in package ‘MASS’:"
data(package = "survival") #abre una nueva ventana con información sobre "Data sets in package ‘survival’:"
help(package = "survival") #otra forma de obtener información sobre el paquete
Para buscar información sobre el paquete Rcmdr, volvemos a utilizar la función help:
help.search("Rcmdr") #usamos la función help.search, ya que buscará esta palabra clave en toda la documentación disponible para econtrar funciones relacionadas. Así, vemos que hay una función llamada rcmd().
a) Importad un archivo de texto y buscad un summary() de tres variables que escojáis.
#1. Guardamos el dataset de cancer de ovario presente en el paquete survival:
write.table (
ovarian,
file = "ovarian.txt"
)
#2. Importamos el archivo y observamos qué información contiene
library(readr) #importamos la librería readr
dataset <- read.table("C:/Users/Usuario/Desktop/Maider/Master/M.153_Software pare el analisis de datos/LAB1/Ejercicios/ovarian.txt") #cargamos el archivo
head(dataset)
## futime fustat age resid.ds rx ecog.ps
## 1 59 1 72.3315 2 1 1
## 2 115 1 74.4932 2 1 1
## 3 156 1 66.4658 2 1 2
## 4 421 0 53.3644 2 2 1
## 5 431 1 50.3397 2 1 1
## 6 448 0 56.4301 1 1 2
#################################################################################
# Los valores que aparecen corresponden a: #
# - futime: survival or censoring time #
# - fustat: 0=censored, 1=death #
# - age: age in years #
# - resid.ds: residual disease present (1=no,2=yes) #
# - rx: treatment group, 1= cyclophosphamide, 2= cyclophosphamide + adriamycin #
# - ecog.ps: ECOG performance status (1 is better) #
#################################################################################
# 3. Buscamos el summary del tiempo de survival (futime), edad (age) y grupo de tratamiento (rx).
summary_dataset = summary(dataset[c("futime", "age", "rx")])
print(summary) #imprimimos los resultados en la consola
## function (object, ...)
## UseMethod("summary")
## <bytecode: 0x0000026ef26206d0>
## <environment: namespace:base>
b) Importad un archivo «.csv» y buscad un fivenum() de dos variables que os parezcan relevantes para el estudio.
#1. Guardamos el dataset de cancer de vejiga presente en el paquete survival:
write.csv (
bladder1,
file = "bladder1.csv"
)
#2. Importamos el archivo csv y observamos qué información contiene
# La librería readr ya ha sido importada en el apartado anterior
bladder_data <- read.csv("C:/Users/Usuario/Desktop/Maider/Master/M.153_Software pare el analisis de datos/LAB1/Ejercicios/bladder1.csv") #cargamos el archivo
head(bladder_data)
## X id treatment number size recur start stop status rtumor rsize enum
## 1 1 1 placebo 1 1 0 0 0 3 . . 1
## 2 2 2 placebo 1 3 0 0 1 3 . . 1
## 3 3 3 placebo 2 1 0 0 4 0 . . 1
## 4 4 4 placebo 1 1 0 0 7 0 . . 1
## 5 5 5 placebo 5 1 0 0 10 3 . . 1
## 6 6 6 placebo 4 1 1 0 6 1 1 1 1
# 3. Buscamos el fivenum summary del número inicial de tumores (number) y del tamaño del tumor inicial (size)
?fivenum # Devuelve el resumen de cinco números de Tukey (mínimo, bisagra inferior, mediana, bisagra superior, máximo) para los datos de entrada.
fivenum_number <- fivenum(bladder_data$number)
fivenum_size <- fivenum(bladder_data$size)
print(fivenum_number) #imprimimos los resultados en la consola
## [1] 1 1 2 3 8
print(fivenum_size)
## [1] 1 1 1 3 8
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.
Empezamos cargando el dataset:
library("MASS")
data("anorexia")
View(anorexia)
Mostramos los tipos de datos que contiene:
str(anorexia) #La función str() en R sirve para mostrar de forma compacta la estructura interna de un objeto de datos.
## '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 ...
Y comprobamos si existen valores NA y NULL:
#Comprobamos si hay algún valor NA en todo el dataset:
any(is.na(anorexia)) #is.na() revisa cada elemento del conjunto de datos e indica con TRUE si el valor es NA y con FALSE si no lo es. Después, any() comprueba si existe al menos un valor TRUE.
## [1] FALSE
#Comprobamos si existen valores NULL:
sapply(anorexia, is.null) #La función sapply() aplica una función a todas las variables del conjunto de datos. En este caso, is.null() se aplica a cada columna para comprobar si alguna de ellas es un objeto nulo (NULL). Si el resultado es FALSE para todas las variables, significa que ninguna variable contiene valores NULL.
## Treat Prewt Postwt
## FALSE FALSE FALSE
Ahora, transformamos los valores de Treat:
levels(anorexia$Treat) #observamos niveles
## [1] "CBT" "Cont" "FT"
levels(anorexia$Treat) <- c("Cogn Beh Tr", "Contr", "Fam Tr") #modificamos los niveles por los pedidos por el ejercicio
levels(anorexia$Treat) #comprobamos los resultados
## [1] "Cogn Beh Tr" "Contr" "Fam Tr"
a) Exportad los datos biopsy del paquete MASS a un archivo «.csv.» Exportamos datos:
library(MASS)
write.csv(biopsy, file="biopsy.csv")
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.
Expotamos el conjunto de datos melanoma a tres formatos distintos: CSV mediante write.csv(), texto mediante write.table() y Excel mediante write.xlsx(). Posteriormente verificamos la correcta creación de los archivos utilizando la función file.exists(), que devuelve TRUE para los tres ficheros generados.
# 1. Exportamos datos de melanoma en formatos txt, csv y xlsx:
write.table(Melanoma, file = "Melanoma_txt.txt")
write.csv(Melanoma, file = "Melanoma_csv.csv")
library(openxlsx) #cargamos librería
write.xlsx(Melanoma, file = "Melanoma_xlsx.xlsx")
# 2. Comprobamos que los archivos existen:
file.exists("Melanoma_txt.txt")
## [1] TRUE
file.exists("Melanoma_csv.csv")
## [1] TRUE
file.exists("Melanoma_xlsx.xlsx")
## [1] TRUE
c) Generad un resumen (summary) de la variable age de melanoma y guardad la salida que os aparece en un documento .doc
age_melanoma = summary (Melanoma$age) #guardamos el resumen en age_melanoma para posteriormente:
capture.output(age_melanoma, file="Agemelanoma.doc") # guardar la salida en un documento .doc
d) 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.
# 1. Importamos el csv:
diabetes <- read.csv("diabetes.csv")
# 2. Comprobamos que se ha cargado:
head(diabetes)
## Pregnancies Glucose BloodPressure SkinThickness Insulin BMI
## 1 6 148 72 35 169.5 33.6
## 2 1 85 66 29 102.5 26.6
## 3 8 183 64 32 169.5 23.3
## 4 1 89 66 23 94.0 28.1
## 5 0 137 40 35 168.0 43.1
## 6 5 116 74 27 102.5 25.6
## DiabetesPedigreeFunction Age Outcome
## 1 0.627 50 1
## 2 0.351 31 0
## 3 0.672 32 1
## 4 0.167 21 0
## 5 2.288 33 1
## 6 0.201 30 0
dim(diabetes)
## [1] 768 9
str(diabetes)
## 'data.frame': 768 obs. of 9 variables:
## $ Pregnancies : int 6 1 8 1 0 5 3 10 2 8 ...
## $ Glucose : int 148 85 183 89 137 116 78 115 197 125 ...
## $ BloodPressure : num 72 66 64 66 40 74 50 70 70 96 ...
## $ SkinThickness : int 35 29 32 23 35 27 32 27 45 32 ...
## $ Insulin : num 170 102 170 94 168 ...
## $ BMI : num 33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 34.3 ...
## $ DiabetesPedigreeFunction: num 0.627 0.351 0.672 0.167 2.288 ...
## $ Age : int 50 31 32 21 33 30 26 29 53 54 ...
## $ Outcome : int 1 0 1 0 1 0 1 0 1 1 ...
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:
a) ¿Cuál es la edad máxima de las madres del conjunto de datos?
library(MASS) # Cargamos la librería MASS donde está el dataset birthwt
data(birthwt) # Guardamos el dataset birthwt
head(birthwt) # Vializamos los datos que tenemos
## 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_age <- max(birthwt$age) # De la columna age, elegimos el valor máximo con la función max.
print(max_age)
## [1] 45
b) ¿Cuál es la edad mínima de las madres del conjunto de datos?
min_age <- min(birthwt$age) # De la columna age, elegimos el valor mínimo con la función min.
print(min_age)
## [1] 14
c) ¿Cuál es el rango de edad de las madres?
rank_age <- max_age - min_age
print(rank_age)
## [1] 31
d) ¿Fumaba la madre cuyo recién nacido era el de menor peso?
# 1. Generamos una función que devolverá TRUE si la respuesta es 1, o FALSE si la respuesta es 0.
smoker_mom <- function(x) {
x == 1
}
# 2. Extraemos el valor de la columna de smoke para la madre cuyo bebe tiene el menor peso.
mom_min_baby <- birthwt$smoke[birthwt$bwt == min(birthwt$bwt)]
# 3. Aplicamos la función creada previamente a la madre seleccionada.
smoker_mom(mom_min_baby)
## [1] TRUE
e) ¿Cuánto pesó el recién nacido cuya madre tenía la edad máxima?
baby_weight <- birthwt$bwt[birthwt$age == max(birthwt$age)]
print(baby_weight)
## [1] 4990
f) Listad los pesos de los recién nacidos, cuyas madres visitarán menos de dos veces al médico durante el primer trimestre.
list_baby_weight <- birthwt$bwt[birthwt$ftv < 2]
print(list_baby_weight)
## [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
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.
head(anorexia) # Observamos los datos
## Treat Prewt Postwt
## 1 Contr 80.7 80.2
## 2 Contr 89.4 80.1
## 3 Contr 91.8 86.4
## 4 Contr 74.0 86.3
## 5 Contr 78.1 76.1
## 6 Contr 88.3 78.1
anorexia_matrix <- matrix(c(anorexia$Prewt, anorexia$Postwt), ncol = 2) # Creamos la matriz
anorexia_matrix
## [,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
## [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
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Í
a) Seleccionad los registros con edad > 22.
age_more22 <- subset(Trat_Pulmon, Edad > 22)
print(age_more22)
## 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Í
b) Seleccionad el elemento 3 de la columna 4 del conjunto de datos (contando el identificador).
el3_col4 <- Trat_Pulmon[3, 4]
print(el3_col4)
## [1] 79.3
c) Usad el comando subset() para seleccionar todas las filas que tienen una edad menor que 27 años y sin incluir la columna Alt.
age_less27 <- subset(Trat_Pulmon, Edad < 27, select = -c(Alt))
print(age_less27)
## 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
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.
library(datasets)
data("ChickWeight")
b) Generad un gráfico de dispersión de la variable weight.
with(ChickWeight, plot(ChickWeight$weight, col = "#CD96CD", main = "Chicken weight"))
c) Cread un diagrama de caja con la variable Time.
boxplot(ChickWeight$Time, col = "#63B8FF", main = "Time")
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")
column_Prewt_Postwt <- anorexia$Prewt - anorexia$Postwt # Generamos un vector con los valores de la diferencia Prewt-Postwt
anorexia_treat_df <- data.frame(Treat = anorexia$Treat, wat = column_Prewt_Postwt) # Generamos un dataframe con los valores de Treat y weight after treatment (wat)
weightgain <- subset(anorexia_treat_df, wat > 0)
cont_weightgain <- subset(weightgain, Treat == "Cont")
cont_weightgain
## Treat wat
## 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
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.
Solución: https://rpubs.com/Maiderfago/1466684