Me pregunto cómo funciona la asignación en el lenguaje R.Asignación en lenguaje R
Considérese la siguiente sesión R shell:
> x <- c(5, 6, 7)
> x[1] <- 10
> x
[1] 10 6 7
>
que entiendo totalmente. El vector (5, 6, 7) se crea y enlaza a el símbolo 'x'. Más tarde, 'x' se rebota al nuevo vector (10, 6, 7) porque los vectores son estructuras de datos inmutables.
Pero lo que sucede aquí:
> c(4, 5, 6)[1] <- 10
Error in c(4, 5, 6)[1] <- 10 :
target of assignment expands to non-language object
>
o aquí:
> f <- function() c(4, 5, 6)
> f()[1] <- 10
Error in f()[1] <- 10 : invalid (NULL) left side of assignment
>
Me parece que sólo se puede asignar valores a las estructuras de datos con nombre (como 'x').
La razón por la que estoy preguntando es porque trato de implementar el núcleo del lenguaje R y no estoy seguro de cómo hacer frente a tales asignaciones .
Gracias de antemano
Esa es una gran pregunta. Puede encontrar un poco de información en algunas de las respuestas aquí: http://stackoverflow.com/questions/10449366/levels-what-sorcery-is-this –