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

发布于 2024-09-28 01:18:34 字数 613 浏览 3 评论 0原文

其他语言也提出了类似的问题:C、sqljava等,

但我正在尝试这样做 我有

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

如何通过调用 x 上的某些函数/操作来获得 (1, 2, 3),而不直接提及 ret_series< /代码>?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

离笑几人歌 2024-10-05 01:18:34

您在问题中提供了答案。尝试获取

> get(x)
[1] 1 2 3

You provided the answer in your question. Try get.

> get(x)
[1] 1 2 3
━╋う一瞬間旳綻放 2024-10-05 01:18:34

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

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

mydata[[x]]

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]]
瑾兮 2024-10-05 01:18:34

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

eval(as.name(x))

eval(as.symbol(x))

What's wrong with either of the following?

eval(as.name(x))

eval(as.symbol(x))
云淡月浅 2024-10-05 01:18:34

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

例如,给定

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文