当变量名作为字符串传递时如何获取值

Rus*_*ser 17 r

我在R中写这段代码

paste("a","b","c") 
Run Code Online (Sandbox Code Playgroud)

返回值 "abc"

变量abc的值为5(比如说)我如何得到"abc"值5是否有任何函数as.value(paste("a","b","c"))可以给我答案5?我让我怀疑听起来很简单,这正是我想要的.所以请帮助我.提前致谢

Sac*_*amp 32

paste("a","b","c")"a b c"不给"abc"

无论如何,我认为你在寻找get():

> abc <- 5
> get("abc")
[1] 5
Run Code Online (Sandbox Code Playgroud)


Mik*_*kko 7

Sacha的答案的补充.如果要使用paste()以下内容为对象"abc"赋值:

assign(paste("a", "b", "c", sep = ""), 5)
Run Code Online (Sandbox Code Playgroud)

  • 你也可以使用新的`paste0(...)`,它是`paste(...,sep ="")`的缩写 (6认同)

Car*_*oft 5

这肯定是关于R语言的最常见问题之一,以及它的邪恶孪生兄弟"我如何x='myfunc'变成可执行函数?" 综上所述, get,parse,eval,expression都是好东西来了解.最有用的(恕我直言)和最不为人知的是do.call,它负责很多字符串到对象的转换工作.

  • @Largh,这就是"R-Inferno"用于~_* (2认同)