68

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

但我试图在 R 中做到这一点。

我有:

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

我如何(1, 2, 3)通过调用一些函数/操作x而不直接提及ret_series

4

4 回答 4

96

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

> get(x)
[1] 1 2 3
于 2010-10-19T19:14:52.550 回答
19

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

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

mydata[[x]]
于 2010-10-19T21:14:49.150 回答
8

以下任何一项有什么问题?

eval(as.name(x))

eval(as.symbol(x))
于 2010-10-21T13:59:16.503 回答
3

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

例如,给定

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

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

于 2013-11-20T16:20:41.413 回答