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

Zha*_*g18 53 variables r r-faq

对其他语言提出了类似的问题:C,sql,java等.

但是我想在R中这样做.

我有:

ret_series <- c(1, 2, 3)
x <- "ret_series"
Run Code Online (Sandbox Code Playgroud)

如何(1, 2, 3)x不直接提及的情况下调用某些函数/操作ret_series

Jos*_*ich 72

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

> get(x)
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)


Gre*_*now 18

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

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

mydata[[x]]
Run Code Online (Sandbox Code Playgroud)


小智 5

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

eval(as.name(x))

eval(as.symbol(x))
Run Code Online (Sandbox Code Playgroud)