我试图在列表中动态创建元素,其中列表中的每个元素实际上都是值列表。为了隔离问题,此处使用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)
行不起作用?
答案 0 :(得分:0)
使用setNames
new_list <- setNames(list(var), varname)