如何使用" eval"在R中为列表中的变量名分配?

时间:2016-05-30 05:04:50

标签: r list character eval

我试图在列表中动态创建元素,其中列表中的每个元素实际上都是值列表。为了隔离问题,此处使用i=3,但i实际上可以是任何整数或任何字符/字符串。

i=3
varname = paste("x", as.character(i), sep="")
X=list()
var = rnorm(10, 100, 5)
new_list=list(eval(varname)=var)

以上给出了错误追溯:

3: var = rnorm(10, 100, 5)
4: new_list=list(eval(varname)=

但现在看看这个:

# but "eval(varname)" is a character
print(eval(varname))

[1]" x3"

# and this works:
new_list=list("x3"=var)

...那么,为什么第new_list=list(eval(varname)=var)行不起作用?

1 个答案:

答案 0 :(得分:0)

使用setNames

命名元素更容易
new_list <- setNames(list(var), varname)