CAPÍTULO 5. ESCRITURA DE FUNCIONES
94
5.2.1. Asociación de símbolos con valores
La primer pregunta que surge en el asunto que se trata en este capítulo
es: ¿en qué momento se introduce o viene a la existencia en R algún símbolo,
típicamente para nombrar alguna variable? La respuesta a esta pregunta es que
básicamente hay dos momentos:
Las expresiones de asignación
. Observemos por ejemplo qué pasa con la si-
guiente expresión:
x
<-
y
## Error: objeto ’y’ no encontrado
Después de la asignación, R se ha quejado de la inexistencia del símbolo
“y”
,
pero no se ha quejado de la inexistencia del símbolo
“x”
. Esto se debe a que, el
símbolo a la izquierda de la asignación se emplea para la
escritura
de un objeto
al que hace referencia y, si no existe, se crea en ese mismo momento; esto equi-
vale a lo que sería la
definición
de una variable en otros lenguajes. En cambio,
el símbolo o símbolos que aparecen a la derecha son de
lectura
y por lo tanto
se presupone su existencia o definición previa. En este caso, como R no puede
determinar una asociación de este símbolo con algún valor, pues
“y”
no se ha
creado previamente, emite un mensaje de error como el mostrado. Así pues,
los símbolos en el lado izquierdo de las expresiones de asignación pueden sig-
nificar la creación de nuevas variables referidas mediante esos símbolos, en el
código, a partir de ese momento. Dado que la instrucción anterior ha termina-
do en error, tampoco se ha asociado el símbolo
“x”
con valor alguno; esto es,
no se ha creado ningún objeto con ese
nombre
.
La declaración de argumentos formales de alguna función
. Otra manera de
introducir los símbolos correspondientes a
nuevas variables
, es mediante la de-
claración de los argumentos formales en la definición de alguna función:
f
<-
function
(
x
,
y
) {
x
+
y
}
En este ejemplo, el símbolo
“f”
, se ha introducido por la asignación, y los sím-
bolos
“x”
y
“y”
, se han introducido mediante su declaración como argumentos
formales de la función, y cuya validez está delimitada al código de la función.
Pero, ¿dónde y cómo se organizan esas asociaciones entre símbolos y valo-
res? Para introducir esta noción, se asignará al símbolo
“t”
, una función muy
simple:
t
<-
function
(
x
) {
2
*
x
}