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.
library()
install.packages("MASS")
install.packages("Survival")
??Rcmdr
summary() de
tres variables que escojáis.fivenum() de dos
variables que os parezcan relevantes para el estudio.#a.
db_txt <- read.csv("ejemplo.txt", sep="")
View(data_txt)
summary(data_txt)
#b.
db_csv <- read.csv("ejemplo.csv")
View(db_csv)
fivenum(db_csv$v1)
fivenum(db_csv$v2)
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)
data("anorexia")
head(anorexia)
table(is.na(anorexia))
##
## FALSE
## 216
table(is.null(anorexia))
##
## FALSE
## 1
anorexia <- factor(anorexia$Treat, levels=c("CBT", "Cont", "FT"), labels=c("Cogn Beh Tr", "Contr", "Fam Tr"))
anorexia
## [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
library(MASS)
#a
data("biopsy")
write.csv(biopsy, file="biopsy.csv")
#b
data("Melanoma")
write.csv(Melanoma, file="melanoma.csv")
write.table(Melanoma, file="melanoma.txt")
write.xlsx(Melanoma, file="melanoma.xlsx")
#c
resumen <- summary(Melanoma$age)
capture.output(resumen, file="resumen.doc")
#d
library(readr)
diabetes <- read_csv("https://raw.githubusercontent.com/plotly/datasets/master/diabetes.csv")
head(diabetes)
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? b) ¿Cuál es la edad mínima de las madres del conjunto de datos? c) ¿Cuál es el rango de edad de las madres? d) ¿Fumaba la madre cuyo recién nacido era el de menor peso? e) ¿Cuánto pesó el recién nacido cuya madre tenía la edad máxima? f) Listad los pesos de los recién nacidos, cuyas madres visitarán menos de dos veces al médico durante el primer trimestre.
library(MASS)
data("birthwt")
View(birthwt)
head(birthwt)
#a
max(birthwt$age)
#b
min(birthwt$age)
#c
range(birthwt$age)
#d
birthwt$smoke[birthwt$bwt==min(birthwt$bwt)]
#e
birthwt$bwt[birthwt$age==max(birthwt$age)]
#f
birthwt$bwt[birthwt$ftv<2]
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)
matrix_anorexia<-matrix(c(anorexia$Prewt,anorexia$Postwt),ncol=2)
head(matrix_anorexia)
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
library(dplyr)
#a
select_a <- Trat_Pulmon %>% filter(Edad >22)
#b
select_b <- Trat_Pulmon[3, 4]
#c
select_c <- subset(Trat_Pulmon, Edad < 27, select = -c(Alt))
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. b) Generad un gráfico de dispersión de la variable weight. c) Cread un diagrama de caja con la variable Time.
library(datasets)
data.frame(ChickWeight)
#a
head(ChickWeight)
#b
plot(ChickWeight$weight)
#c
boxplot(ChickWeight$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)
library(dplyr)
anorexia <- anorexia
anorexia_treat_df <- anorexia %>%
mutate(post_pre_tto = Postwt - Prewt) %>%
select(Treat, post_pre_tto)
anorexia_treat_C_df <- anorexia_treat_df %>%
filter(post_pre_tto > 0, Treat == "Cont")
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:
En RStudio, cread un documento R Markdown.
Generad el documento con Knit.
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.
Enlace: RMarkdown publicado.
Cread un conjunto de datos inventado con R. Debe contener treinta observaciones (quince para hombres y quince para mujeres) para seis variables con estas características:
| Nombre | Variable | Características |
|---|---|---|
| Identificador | Id | carácter |
| Edad | Edad | numérica |
| Género | Gene | 2 valores 1=mujer, 2 = hombre |
| Tratamiento | Trat | Factor. Tres tipos de tratamiento (A, B, C) |
| Peso | Peso | numérica (en kg) |
| Estatura | Alt | numérica (en cm) |
Buscad información de vuestro conjunto de datos y de vuestras variables.
Cread una nueva variable a partir de alguna de las que tengamos. Por ejemplo, podéis calcular el IMC (IMC = peso (kg)/ [estatura (m)]^2 e incluid la nueva variable en el conjunto de datos.
Cread dos data frames diferenciados para hombres y mujeres con dos nombres diferentes: Df_Hombres y Df_Mujeres.
Combinad de nuevo los dos ficheros anteriores y cread el primero de nuevo con el comando rbind().
#a
set.seed(999)
Id <- paste0("ID", 1:30)
Edad <- sample(20:60, 30, replace = TRUE)
Gene <- c(rep(1, 15), rep(2, 15)) # 1 = mujer, 2 = hombre
Trat <- sample(c("A", "B", "C"), 30, replace = TRUE)
Peso <- round(rnorm(30, mean = 70, sd = 10), 1) # en kg
Alt <- round(rnorm(30, mean = 170, sd = 10), 1) # en cm
datos <- data.frame(Id, Edad, Gene, Trat, Peso, Alt)
#b
str(datos)
## 'data.frame': 30 obs. of 6 variables:
## $ Id : chr "ID1" "ID2" "ID3" "ID4" ...
## $ Edad: int 46 23 26 60 33 20 29 41 54 42 ...
## $ Gene: num 1 1 1 1 1 1 1 1 1 1 ...
## $ Trat: chr "A" "C" "B" "B" ...
## $ Peso: num 58.9 73 72.8 49.5 70.1 75.8 69.7 68.8 63.6 87.4 ...
## $ Alt : num 166 180 171 175 149 ...
summary(datos)
## Id Edad Gene Trat
## Length:30 Min. :20.00 Min. :1.0 Length:30
## Class :character 1st Qu.:26.50 1st Qu.:1.0 Class :character
## Mode :character Median :34.50 Median :1.5 Mode :character
## Mean :36.93 Mean :1.5
## 3rd Qu.:47.50 3rd Qu.:2.0
## Max. :60.00 Max. :2.0
## Peso Alt
## Min. :49.50 Min. :149.4
## 1st Qu.:64.67 1st Qu.:163.8
## Median :69.75 Median :169.3
## Mean :69.86 Mean :169.5
## 3rd Qu.:75.38 3rd Qu.:175.2
## Max. :87.40 Max. :186.6
head(datos)
#c
datos$IMC <- round(datos$Peso/((datos$Alt/100)^2), 2)
#d
df_Mujeres <- subset(datos, Gene == 1)
df_Hombres <- subset(datos, Gene == 2)
#e
datos_combinados <- rbind(df_Mujeres, df_Hombres)
head(datos_combinados)