Des questions similaires ont été posées pour d'autres langues: C , sql , Java , etc.
Mais j'essaye de faire ça dans R.
J'ai:
ret_series <- c(1, 2, 3)
x <- "ret_series"
Comment puis-je obtenir (1, 2, 3)
en appelant une fonction/manipulation sur x
, sans mentionner directement ret_series
?
Vous avez fourni la réponse dans votre question. Essayez get
.
> get(x)
[1] 1 2 3
Pour une utilisation ponctuelle, la fonction get fonctionne (comme cela a été mentionné), mais elle ne s'adapte pas bien aux grands projets. il est préférable de stocker vos données dans des listes ou des environnements, puis utilisez [[pour accéder aux éléments individuels:
mydata <- list( ret_series=c(1,2,3) )
x <- 'ret_series'
mydata[[x]]
Quel est le problème avec l'un des éléments suivants?
eval(as.name(x))
eval(as.symbol(x))
Notez que certains des exemples ci-dessus ne fonctionneraient pas pour un data.frame
.
Par exemple, étant donné
x <- data.frame(a=seq(1,5))
get("x$a")
ne vous donnerait pas x$a
.