<- function(a b) {
f0 <- a + b
x * 100
x }
Actividad de autoevaluación 3
Esta autoevaluación DEBE ser completada sin usar R para poder razonar las preguntas.
Pregunta 1
¿Qué problema/s tiene la siguiente definición de una función en R?
Pregunta 2
Considerar la siguiente función:
<- function(x, y) {
f1 if(y == "operar") {
<- x * 2
x <- x + 100
rtdo else {
} <- x
rtdo
}return(rtdo)
}
¿Qué valor se obtiene si se evalúa f1(2, "operar")
?
¿Qué valor se obtiene si se evalúa f1(2, "no operar")
?
¿Qué valor se obtiene si se evalúa f1("operar", 2)
?
¿Qué valor se obtiene si se evalúa f1(2)
?
¿Qué valor se obtiene si se evalúa f1("2", "operar")
?
¿Qué valor se obtiene si se evalúa f1("2", "jaja")
?
Pregunta 3
Considerando la función f1
anterior junto con la función f2
y el programa que se muestran a continuación, indicar si cada una de las siguientes afirmaciones es VERDADERA o FALSA o elegir la respuesta correcta:
# Definición de funciones
<- function(x, y) {
f1 if(y == "operar") {
<- x * 2
x <- x + 100
rtdo else {
} <- x
rtdo
}return(rtdo)
}
<- function(z) {
f2 return(z + b)
}
# Programa
<- 10
x <- "operar"
palabra <- f1(x, palabra)
a cat("Mensaje 1: el valor encontrado es ", a, "y la variable x vale ", x, "\n")
<- 12
b <- f2(15)
c cat("Mensaje 2: el valor encontrado es ", c, "\n")
<- f1(5, "no operar") + f1(5, "operar")
d cat("Mensaje 3: el valor encontrado es", d, "\n")
La variable d
es local a f1
:
La variable c
es global:
La función f2
respeta el principio de transparencia referencial:
La función f2
puede devolver distintos resultados aunque le pasemos siempre el mismo valor para el parámetro formal z
:
La variable rtdo
existe en el ambiente global del programa:
La variable rtdo
es local a la función f1
:
El texto mostrado por el primer mensaje será:
El texto mostrado por el segundo mensaje será:
El texto mostrado por el tercer mensaje será:
Pregunta 4
Seleccionar la opción correcta:
warning()
message()
stop()
NULL
, NA
y NaN
son tres objetos que tienen comportamientos semejantes en las operaciones.