Access variable value where the name of variable i

2019-01-07 15:48发布

Similar questions have been raised for other languages: C, sql, java, etc.

But I'm trying to do this in R.

I have:

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

How do I get (1, 2, 3) by calling some function / manipulation on x, without direct mentioning of ret_series?

4条回答
神经病院院长
2楼-- · 2019-01-07 16:08

You provided the answer in your question. Try get.

> get(x)
[1] 1 2 3
查看更多
淡お忘
3楼-- · 2019-01-07 16:23

For a one off use, the get function works (as has been mentioned), but it does not scale well to larger projects. it is better to store you data in lists or environments, then use [[ to access the individual elements:

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

mydata[[x]]
查看更多
兄弟一词,经得起流年.
4楼-- · 2019-01-07 16:24

What's wrong with either of the following?

eval(as.name(x))

eval(as.symbol(x))
查看更多
beautiful°
5楼-- · 2019-01-07 16:31

Note that some of the examples above wouldn't work for a data.frame.

For instance, given

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

get("x$a") would not give you x$a.

查看更多
登录 后发表回答