首页 > 解决方案 > 从连接的字符串中调用变量

问题描述

我有三个变量,我想从包含通过连接字符串“变量”生成的变量名称的向量中调用它们。后缀为“ONE”、“TWO”和“THREE”,如下代码所示:

variable.ONE <- 1
variable.TWO <- 2
variable.THREE <- 3
j <- c("ONE","TWO","THREE")
variables <- paste0("variable.",j)

“变量”打印:

variables
[1] "variable.ONE"   "variable.TWO"   "variable.THREE"

我正在寻找一种方法来返回向量“变量”中包含的所有三个变量的值,因此:

[1] 1 2 3

但是,调用“变量”中包含的变量并不能按预期工作:

get(variables)产生:

[1] 1

eval(noquote(variables)))产生:

[1] variable.ONE   variable.TWO   variable.THREE

eval(as.name(variables)))产生:

[1] 1

这些尝试只是众多尝试中的三个,但都没有让我得到理想且简单的输出:

[1] 1 2 3

因此,我将非常感谢您能提供的任何帮助!

提前致谢!

标签: rconcatenation

解决方案


您可以mget(variables)用于字符向量,返回对象列表。

请注意,无法确保 的每个元素都variables引用相同类型的原子对象(例如,如果variable.TWO <- "b"?),因此预期结果应该是列表而不是向量。

您可以使用unlist(mget(variables)).


推荐阅读