valor de la variable de acceso donde el nombre de la variable se almacena en una cadena

StackOverflow https://stackoverflow.com/questions/3971844

  •  09-10-2019
  •  | 
  •  

Pregunta

Preguntas similares se han planteado para otros idiomas: C , sql , java , etc.

Pero estoy tratando de hacer esto en R.

Tengo:

ret_series <- c(1, 2, 3)
x <- "ret_series"

¿Cómo llego (1, 2, 3) llamando a alguna función / manipulación en x, sin hacer mención directa de ret_series?

¿Fue útil?

Solución

Se dio la respuesta en su pregunta. Trate get.

> get(x)
[1] 1 2 3

Otros consejos

En un fuera de uso, las obras función get (como se ha dicho), pero no se adapta bien a proyectos de mayor envergadura. es mejor para almacenar sus datos en listas o entornos, a continuación, utilizar [[Para acceder a los elementos individuales:

mydata <- list( ret_series=c(1,2,3) )
x <- 'ret_series'

mydata[[x]]

¿Qué hay de malo en alguna de las siguientes?

eval(as.name(x))

eval(as.symbol(x))

Tenga en cuenta que algunos de los ejemplos anteriores no funcionaría para un data.frame.

Por ejemplo, dada

x <- data.frame(a=seq(1,5))

get("x$a") no le daría x$a.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top