CAPÍTULO 5. ESCRITURA DE FUNCIONES
89
w
<-
x
+
yyy
+
z
return
(w)
3.1416
# Este código nunca se ejecuta
}
# Definición -- Versión 3
MiFunc.v3
<-
function
(
x
,
yyy
,
z
=
5
,
t
) {
x
+
yyy
+
z
}
# Ejecuciones:
MiFunc.v1
(
1
,
2
,
3
)
# Ejecución 1
## [1] 6
MiFunc.v2
(
1
,
2
)
# Ejecución 2
## [1] 8
MiFunc.v3
(
1
)
# Ejecución 3
## Error: el argumento "yyy" está ausente, sin valor por omisión
MiFunc.v3
(
z
=
3
,
yyy
=
2
,
x
=
1
)
# Ejecución 4
## [1] 6
MiFunc.v2
(
1
,
y
=
2
)
# Ejecución 5
## [1] 8
MiFunc.v1
(
1
,
z
=
3
)
# Ejecución 6
## Error: el argumento "yyy" está ausente, sin valor por omisión
En el código precedente, se han definido tres versiones de una función que
tiene la simple tarea de sumar tres números que estarán asociados con los tres
argumentos formales
x
,
yyy
,
z
; aunque, intencionalmente se ha provisto de un
argumento adicional,
t
, que no se emplea en el cuerpo de la función. La lista
de argumentos formales es semejante en todas las versiones. En ella, al tercer
argumento,
z
, mediante el operador
“=”
, se le asigna el valor 5 por omisión;
lo que quiere decir que si no se puede asociar con un argumento verdadero
al momento de la ejecución, tomará ese valor. En todas las versiones se ha-
ce la suma de los tres primeros argumentos formales; sin embargo, en las dos
primeras versiones, el resultado de esta operación se
guarda
en una variable
local, w, mientras que en la tercer versión, no. El resultado de la función, esto
es el valor que entregará al ejecutarse, se toma de la última expresión ejecuta-