library("gtools")
La permutación busca diferentes maneras para organizar u ordenar un conjuntos de elementos, en cambio, para el caso de las combinaciones se buscan las diferentes maneras de escoger o elegir un objeto de un conjuntos de objetos, sin considerar el orden de estos objetos, Por lo tanto para la permutación si importa el orden de los objetos o conjuntos y para la combinación el orden no importa en lo absoluto.
La función “combinations” se usa para enumerar las combinaciones posibles de elementos, con un tamaño determinado, dentro de un vector.Por otro lado la función permutations se usa para enumerar las posibles permutaciones de los elementos, tambien con un tamaño determinado y dentro de un vector. Las dos funciones mencionadas poseen los mismos parametros para su correcta implementción, un número “n” el cual corresponde al tamaño del vector principal, un número “r” que corresponde al tamaño de las combinaciones o permutaciones y 2 banderas o etiquetas logicas, “set”, donde indica si puede haber repetición de elementos dentro del vector original y “repeats.allowed”, que por el contrario permite o no si pueden haber elementos duplicados en el nuevo vector.
#Permutaciones sin repeticiones
permutacion_sin = permutations(14, 4)
print(nrow(permutacion_sin))
## [1] 24024
#Permutaciones con repeticiones
permutacion_con = permutations(14, 4, v= 1:14, set=FALSE, repeats.allowed= TRUE)
print(nrow(permutacion_con))
## [1] 38416
#Combinación sin repetición
combinacion_sin = combinations(3,3,letters[1:3])
combinacion_sin
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
#Combinación con repetición
combinacion_con = combinations(3,3,letters[1:3],repeats=TRUE)
combinacion_con
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "b" "b"
## [5,] "a" "b" "c"
## [6,] "a" "c" "c"
## [7,] "b" "b" "b"
## [8,] "b" "b" "c"
## [9,] "b" "c" "c"
## [10,] "c" "c" "c"
#Permutación sin repetición
p_sin = permutations(30, 2)
print(nrow(p_sin))
## [1] 870
#Combinación sin repetición
c_sin = combinations(30, 2)
print(nrow(c_sin))
## [1] 435
A_dado_B = function(A, B, BA){
return(BA*A/B)
}
tripulacion = apply(Titanic, c(1), sum)[4]
clase_vivos =sum((apply(Titanic, c(1, 4), sum)[1:3]))+ sum((apply(Titanic, c(1, 4), sum)[5:7]))
tripu_vivos=apply(Titanic, c(1, 4), sum)[8]
pasajeros_vivos =sum(apply(Titanic, c(1, 4), sum)[5:7])
tv =(tripu_vivos/tripulacion)*100 #multiplicamos por 100 para el porcentaje
pv =(pasajeros_vivos/clase_vivos)*100
print(tv)
## Crew
## 23.9548
#Porcentaje pasajeros vivos
print(pv)
## [1] 37.91793
tripu_viva = apply(Titanic,c(1,2,4),sum)
tripu_fem = tripu_viva[8] + tripu_viva[16]
tripu_mujer = tripu_viva[16]/tripu_fem
cat(paste("Probabilidad de que una mujer de la tripulación sobreviva es: ",tripu_mujer))
## Probabilidad de que una mujer de la tripulación sobreviva es: 0.869565217391304
sob_clase = apply(Titanic,c(1,3,4),sum)
kids_3ra = sob_clase[3]+sob_clase[11]
sobreviva3ra = sob_clase[11]/kids_3ra
cat(paste("Probabilidad de que un menor de edad sobreviva en tercera clase es: ",sobreviva3ra))
## Probabilidad de que un menor de edad sobreviva en tercera clase es: 0.341772151898734
set.seed(98)
sample(apply(Titanic,1,sum),1)
## 2nd
## 285