<- c(1, 2, 3)
A <- c(9, 2, 7)
B <- list(A, B)
D <- matrix(c(1, 1, 1, 2, 2, 2, 3, 0, 3, 7, 8, 9), nrow = 4, byrow = TRUE) E
Actividad de autoevaluación 5
Contexto
Se cuenta con los siguientes objetos en el ambiente de trabajo de R:
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?
<- A + B * 2
Z
for (i in 1:length(Z)) {
<- Z[i]^2 + i
Z[i]
}
<- Z/2
Z <- Z[2] Y
Ingrese un número:
Primero,
B * 2
da:c(18, 4, 14)
Luego,
A + B*2
da:c(1+18, 2+4, 3+14)
→Z = c(19, 6, 17)
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
Luego
Z <- Z/2
:Z = c(181, 19, 146)
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")
"marzo"] * A["beta"] B[
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 matrizB
.
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
esD[[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 listaD
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.