【问题标题】:Calling variables from concatenated strings从连接的字符串中调用变量
【发布时间】:2021-05-17 00:43:07
【问题描述】:

我有三个变量,我想从一个包含变量名的向量中调用它们,这些变量名是通过连接字符串“variable”而产生的。后缀为“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

因此,如果您能提供任何帮助,我将不胜感激!

提前致谢!

【问题讨论】:

    标签: r concatenation


    【解决方案1】:

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

    请注意,没有办法确保variables 的每个元素都引用相同类型的原子对象(例如,如果variable.TWO &lt;- "b" 怎么办?),因此预计结果应该是一个列表而不是一个向量。

    您可以使用unlist(mget(variables)) 实现您想要的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多