访问变量值,其中变量名称存储在字符串中

时间:2010-10-19 19:13:23

标签: r variables r-faq

其他语言也提出了类似问题:Csqljava等。

但我正试图在R中这样做。

我有:

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

如何通过调用(1, 2, 3)上的某些功能/操作来获取x,而不直接提及ret_series

4 个答案:

答案 0 :(得分:69)

您在问题中提供了答案。试试get

> get(x)
[1] 1 2 3

答案 1 :(得分:18)

对于一次性使用,get函数可以正常工作(如前所述),但它不能很好地扩展到较大的项目。最好将数据存储在列表或环境中,然后使用[[访问各个元素:

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

mydata[[x]]

答案 2 :(得分:5)

以下任何一种情况有什么问题?

eval(as.name(x))

eval(as.symbol(x))

答案 3 :(得分:1)

请注意,上面的一些示例不适用于data.frame

例如,给定

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

get("x$a")不会给你x$a