# Ejercicio 1 #### v <- runif (25,0,10) # Para saber que elementos de un vector o matriz cumplen una condicion: w <- v >= 5 # Para saber cuantos elementos cumplen una condicion: p <- sum(v>=5) # o 'p <- sum(w)' # Para quedarte solo con los elementos que cumplen una condicion (en otras # palabras, para eliminar los elementos de un vector que no cumplen una condicion): z <- v[v>=5] # Ejercicio 2 #### # Inicializar la funcion y variables necesarias asignacion_escanos2 <- function (votos, nesc){ npart <- length (votos) A <- matrix (c(0), nrow = npart, ncol = nesc) escanos_unica <- rep (0, npart) # Rellenar matriz A con los elementos utilizados para aplicar la ley D'Hondt for (k in 1:nesc){ A[,k] <- votos/k } # Crear un vector con todos los elementos de A desglosados de mayor a menor a <- sort(as.vector (A), decreasing = TRUE) # Utilizando un bucle, sumar la cantidad de elementos que hay en cada fila que # cumplen la condicion. He omitido crear la matriz 'B <- A >= a[nesc]' para # que se vea que 'A >= a[nesc]' ya es una matriz de por si. for (i in 1:npart){ escanos_unica[i] <- sum(A[i,]>=a[nesc]) } # Con funciones optimizadas de R se puede aplicar una sema a una matriz por # filas o columnas sin necesidad de bucles. Tambien se pueden calcular medias # por filas 'rowMean()' o por columnas 'colMeans()' escanos_unica <- rowSum(A>=a[nesc]) return (escanos_unica) }