Actividad de autoevaluación 5

Contexto

Se cuenta con los siguientes objetos en el ambiente de trabajo de R:

A <- c(1, 2, 3)
B <- c(9, 2, 7)
D <- list(A, B)
E <- matrix(c(1, 1, 1, 2, 2, 2, 3, 0, 3, 7, 8, 9), nrow = 4, byrow = TRUE)

A partir de estos objetos responder las siguientes preguntas:

Pregunta 1

¿Cuál es la línea de código que se debe correr para obtener un vector donde cada elemento sea igual a la suma de los elementos que se encuentran en la misma posición de los vectores A y B?

La suma elemento a elemento entre dos vectores del mismo largo se hace con A + B.

Pregunta 2

¿Cuál es el resultado al ejecutar lapply(D, min)?

lapply devuelve una lista, no un vector. Por eso la opción correcta es una lista con dos elementos.

Pregunta 3

¿Cuál es el valor almacenado en Y luego de ejecutar las siguientes acciones?

Z <- A + B * 2

for (i in 1:length(Z)) {
  Z[i] <- Z[i]^2 + i
}

Z <- Z/2
Y <- Z[2]

Ingrese un número:

  1. Primero, B * 2 da: c(18, 4, 14)

  2. Luego, A + B*2 da: c(1+18, 2+4, 3+14)Z = c(19, 6, 17)

  3. En el bucle, se reemplaza cada valor con Z[i]^2 + i:

    • Z[1] = 19^2 + 1 = 361 + 1 = 362
    • Z[2] = 6^2 + 2 = 36 + 2 = 38
    • Z[3] = 17^2 + 3 = 289 + 3 = 292
  4. Luego Z <- Z/2: Z = c(181, 19, 146)

  5. Finalmente, Y <- Z[2] → Resultado: 19.

Pregunta 4

¿Cuál es el valor obtenido al ejecutar el siguiente programa?

names(B) <- c("enero", "febrero", "marzo")
names(A) <- c("alfa", "beta", "gama")
B["marzo"] * A["beta"]

Ingrese un número:

Se multiplican los valores en las posiciones con nombre “marzo” (7) y “beta” (2): 7 × 2 = 14.

Pregunta 5

¿Cuál es el resultado de ejecutar rbind(A,B)?

rbind une los vectores por filas, dando como resultado 2 filas (A y B) y 3 columnas (sus elementos).

Pregunta 6

¿Con cuáles líneas de código podrían obtenerse los totales por columna de E? (marcar todas las que considere correctas).

Para obtener totales por columna, podemos indicar el margen 2 en apply(E, 2, sum), o usar una función especializada como colSums, que está optimizada para este propósito. También puede lograrse sumando manualmente cada columna como en c(sum(E[, 1]), sum(E[, 2]), sum(E[, 3])).

Pregunta 7

¿Qué cantidad de elementos tiene el vector X <- seq(0, 10, 2)?

Ingrese un número:

La secuencia va de 0 a 10 en pasos de 2: 0, 2, 4, 6, 8, 10. Total: 6 elementos.

Pregunta 8

¿Qué se obtiene al ejecutar E[E>5]?

La expresión E > 5 genera una matriz lógica con la misma forma que E, donde cada posición indica si el valor es mayor a 5. Al usarla dentro de E[...], se extraen solo los elementos que cumplen esa condición, devolviendo un vector con los valores mayores a 5 en forma aplanada.

Pregunta 9

Indique si cada una de las siguientes afirmaciones es verdadera o falsa:

  • El resultado de length(D) es 2.

length(D) devuelve 2 porque la lista tiene dos elementos.

  • El resultado D[2] es la matriz B.

Para obtener la matriz B se debe indexar como: D[[2]]. D[2] es otro tipo de indexación válida para listas, pero devuelve una sublista, no el contenido directo de B. No es la matriz B sino una lista que la contiene.

  • La forma correcta de invocar al valor 7 que está en la lista D es D[[2]][3].

D[[2]] accede al segundo elemento de la lista (el vector B), y [3] al tercer valor de ese vector.

  • Al ejecutar D[[1]] <- 5, el primer elemento de la lista D pasa a ser un vector con los valores 5, 2 y 3.

D[[1]] <- 5 reemplaza el primer elemento de la lista (un vector de largo 3) con el valor escalar 5, de modo que el primer elemento deja de ser el vector original.