The manual estados:¿Por qué el operador "=" R no se debe usar en las funciones?
El operador '< -' se puede utilizar en cualquier lugar, mientras que el operador '=' sólo se permite en el nivel superior (por ejemplo, en la expresión completa se escriba en el símbolo del sistema) o como uno de las subexpresiones en una lista de expresiones arriostradas.
The question here mencionan la diferencia cuando se utilizan en la llamada a la función. Sin embargo, en la definición de función, parece que funciona normalmente:
a = function()
{
b = 2
x <- 3
y <<- 4
}
a()
# (b and x are undefined here)
Entonces, ¿el manual menciona que the operator ‘=’ is only allowed at the top level
??
No hay nada al respecto en el language definition (no hay =
operador de la lista, qué pena!)
Se menciona en R-lang en [sección 10.4.2 Infix y operadores de prefijos] (http://cran.r-project.org/doc/manuals/R-lang.html#Infix-and-prefix-operators), pero no dice mucho más de lo que está en la entrada de ayuda que mencionaste. –
El texto que cita dice "en el nivel superior ** O ** en una lista corregida de subexpresiones". Lo está usando en una lista de subexpresiones preparadas. Lo cual está permitido. – Andrie
Tienes que hacer grandes esfuerzos para encontrar una expresión que no sea ni a nivel ni entre llaves. Aqui hay uno. A veces quieres envolver una tarea dentro de un bloque 'try':' try (x <- f()) 'está bien, pero' try (x = f (x)) 'no lo es - necesitas cambiar el operador de asignación o agregar llaves. –