################################################################# ejemplo 1 Depuracion1 <- function(datos) { parar <- 0 if (is.numeric(datos) == TRUE) { longitud <- length(datos) for (i in 1:longitud) { if ((datos[i]<0) || (datos[i]>1)) { cat("Los datos introducidos no son probabilidades\n") parar <- 1 } } } else { cat("Los datos introducidos no son numéricos\n") parar <- 1 } parar } Depuracion2 <- function(datos) { parar <- 0 if (sum(datos) != 1) { cat("Las probabilidades de los sucesos incompatibles y exhaustivos no suman uno\n") parar <- 1 } parar } Depuracion3 <- function(datos1, datos2) { parar <- 0 longitud1 <- length(datos1) longitud2 <- length(datos2) if (longitud1 != longitud2) { cat("Los vectores de las probabilidades introducidas no tienen la misma longitud\n") parar <- 1 } parar } ############################################ ProbabilidadTotal <- function(probabilidadessucesos, probabilidadescondicionadassucesos) { # adviértase que la posición i del segundo vector es la probabilidad condicionada asociada a la posición i del primer vector datos <- c(probabilidadessucesos, probabilidadescondicionadassucesos) if (Depuracion1(datos) == 0) { if (Depuracion3(probabilidadessucesos, probabilidadescondicionadassucesos) == 0) { if(Depuracion2(probabilidadessucesos) == 0) { probabilidadtotal <- 0 longitud <- length(probabilidadessucesos) for (i in 1:longitud) { probabilidadtotal <- probabilidadessucesos[i]*probabilidadescondicionadassucesos[i] + probabilidadtotal } probabilidadtotal } else probabilidadtotal = -1 } else probabilidadtotal = -1 } else probabilidadtotal = -1 } ################################################################# ejemplo 2 TeoremaBayes <- function(probabilidadcondicionadanumerador, probabilidadnumerador, probabilidaddenominador, probabilidadtotal = FALSE, probabilidadessucesos, probabilidadescondicionadassucesos) { if (probabilidadtotal == TRUE) { probabilidaddenominador<-ProbabilidadTotal(probabilidadessucesos, probabilidadescondicionadassucesos) } if (probabilidaddenominador != -1) { datos <- c(probabilidadcondicionadanumerador, probabilidadnumerador, probabilidaddenominador) if (Depuracion1(datos) == 0) { teoremabayes <- (probabilidadcondicionadanumerador*probabilidadnumerador)/probabilidaddenominador } if (probabilidadtotal == TRUE) { salida <- c(probabilidaddenominador, teoremabayes) names(salida) <- c("Probabilidad Total", "Teorema Bayes") salida } else teoremabayes } }