library(MASS) par(ask=TRUE) # ignorar esta funcion, solo es para separar la salida en pantalla pregunta <- function(n){ cat("\n") cat(paste(rep("*", 40), sep = "", collapse = "")) cat(paste(" Pregunta", n, "")) cat(paste(rep("*", 40), sep = "", collapse = "")) cat("\n") } #-------------------------------------------------------- # Pregunta 1 #-------------------------------------------------------- pregunta(1) # a) y b) filas_completas <- 0; faltanDatos <- character(); for (i in 1:nrow(Pima.tr2)){ valores_na <- sum(is.na(Pima.tr2[i, ])); if (valores_na == 0){ filas_completas <- filas_completas + 1; faltanDatos <- c(faltanDatos, "nofaltan"); } else{ faltanDatos <- c(faltanDatos, "faltan"); } } cat("Hay", filas_completas, "filas completas\n") datos_nuevos <- data.frame(Pima.tr2, faltanDatos) # c) promedios_nof <- NULL promedios_fal <- NULL for (col in colnames(datos_nuevos)){ if (col != "type" && col != "faltanDatos"){ promedios_nof <- c(promedios_nof, mean(datos_nuevos[datos_nuevos$faltanDatos == "nofaltan",][[col]])) promedios_fal <- c(promedios_fal, mean(datos_nuevos[datos_nuevos$faltanDatos == "faltan",][[col]], na.rm = TRUE)) } } df <- data.frame(promedios_nof, promedios_fal) row.names(df) <- colnames(datos_nuevos)[1:7] cat("\nPromedios:\n") print(df) # d) # primero hay que convertir a numeros la columna type datos_nuevos$type <- as.numeric(datos_nuevos$type) # algunos ejemplos de modelos # empece con todas las variables, me fui quedando con las que parecian significantes modelo = lm(datos_nuevos$type ~ datos_nuevos$npreg + datos_nuevos$glu + datos_nuevos$bp + datos_nuevos$skin + datos_nuevos$bmi + datos_nuevos$ped + datos_nuevos$age) summary(modelo) modelo = lm(datos_nuevos$type ~ datos_nuevos$npreg + datos_nuevos$glu + datos_nuevos$bmi + datos_nuevos$ped + datos_nuevos$age) summary(modelo) modelo = lm(datos_nuevos$type ~ datos_nuevos$npreg + datos_nuevos$glu + datos_nuevos$bmi + datos_nuevos$ped) summary(modelo) modelo = lm(datos_nuevos$type ~ datos_nuevos$npreg + datos_nuevos$glu * datos_nuevos$bmi + datos_nuevos$ped) summary(modelo) modelo = lm(datos_nuevos$type ~ datos_nuevos$npreg + datos_nuevos$ped) print(summary(modelo)) #-------------------------------------------------------- # Pregunta 2 #-------------------------------------------------------- pregunta(2) x_impar <- seq(1, 15, by=2) x_par <- seq(2, 14, by=2) y_impar <- c(1, 1, 1, 1, 1, 1, 1, 1) y_par <- c(1, 1, 1, 1, 1, 1, 1) X <- NULL Y <- NULL for (i in 1:14){ if (i %% 2 == 0){ X <- c(X, x_par) Y <- c(Y, y_par + i) } else { X <- c(X, x_impar) Y <- c(Y, y_impar + i) } } plot(X, Y) cat("Instrucciones para generar el grafico en el archivo\n") #-------------------------------------------------------- # Pregunta 3 #-------------------------------------------------------- pregunta(3) resp_a <- length(grep("i", state.name, ignore.case = TRUE, value = TRUE)) cat("1.a)", resp_a, "\n") resp_b <- grep("a.a", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.b)", paste(resp_b, collapse = ", "), "\n") resp_c <- grep(" ", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.c)", paste(resp_c, collapse = ", "), "\n") resp_d <- grep("^m", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.d)", paste(resp_d, collapse = ", "), "\n") resp_e <- grep("[aeiou]$", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.e)", paste(resp_e, collapse = ", "), "\n") resp_f <- grep("[aeiou]{2}", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.f)", paste(resp_f, collapse = ", "), "\n") resp_g <- grep("^(north|south)", state.name, ignore.case = TRUE, value = TRUE) cat("\n1.g)", paste(resp_g, collapse = ", "), "\n") cat("\n1.h) Usando vector logico: ") print(state.name[nchar(state.name) == max(nchar(state.name))]) cat("\n1.h) Usando un loop: ") largo <- 0 estado <- NULL for (i in 1:length(state.name)){ if (nchar(state.name[i]) > largo){ estado <- state.name[i] largo <- nchar(state.name[i]) } } print(estado) cat("\n1.i) Codigo para generar grafico en archivo .R\n") #a = 61 , e = 28 , i = 44 , o = 36 , u = 8 a <- 0 e <- 0 i <- 0 o <- 0 u <- 0 for (j in 1:length(state.name)){ valores <- gregexpr("a", state.name[j], ignore.case = TRUE) if (valores[[1]][1] != -1){ a <- a + length(valores[[1]]) } valores <- gregexpr("e", state.name[j], ignore.case = TRUE) if (valores[[1]][1] != -1){ e <- e + length(valores[[1]]) } valores <- gregexpr("i", state.name[j], ignore.case = TRUE) if (valores[[1]][1] != -1){ i <- i + length(valores[[1]]) } valores <- gregexpr("o", state.name[j], ignore.case = TRUE) if (valores[[1]][1] != -1){ o <- o + length(valores[[1]]) } valores <- gregexpr("u", state.name[j], ignore.case = TRUE) if (valores[[1]][1] != -1){ u <- u + length(valores[[1]]) } } cat("a = ", a, ", e = ", e, ", i = ", i, ", o = ", o, ", u = ", u, "\n") barplot(c(a,e, i, o, u), names.arg=c("a", "e", "i", "o", "u"))