我在R
中编写此代码paste("a","b","c")
返回值"abc"
变量abc
的值为5(比方说)如何让"abc"
给我值5是否有as.value(paste("a","b","c"))
之类的函数会给我答案5?我让我怀疑听起来很简单,这正是我想要的。所以请帮助我。提前致谢
答案 0 :(得分:31)
paste("a","b","c")
为"a b c"
提供"abc"
无论如何,我认为您正在寻找get()
:
> abc <- 5
> get("abc")
[1] 5
答案 1 :(得分:7)
Sacha回答的补充。如果要使用paste()
:
assign(paste("a", "b", "c", sep = ""), 5)
答案 2 :(得分:5)
这肯定是关于R语言最常见的问题之一,以及它邪恶的双胞胎兄弟“我如何将x='myfunc'
变成可执行函数?”
总而言之,get
,parse
,eval
,expression
都是值得学习的好东西。最有用的(恕我直言)和最不为人所知的是do.call
,它负责为你完成很多字符串到对象的转换工作。
答案 3 :(得分:1)
这是一个演示eval()和get(eval())的示例
a <- 1
b <- 2
var_list <- c('a','b')
for(var in var_list)
{
print(paste(eval(var),' : ', get(eval(var))))
}
这给出了:
[1] "a : 1"
[1] "b : 2"