【发布时间】:2016-11-23 21:15:15
【问题描述】:
我的问题类似于How to add variable key/value pair to list object?。我想根据变量的值给列表元素一个可变的名称。但我不想重命名列表,而是在初始化时正确命名(我想要一个单行)而不使用“The evil trio (eval, parse, paste)”。
list 工作方式的“问题”在于
key <- "width"
my_list <- list(key = 32)
将元素命名(可以理解)"key" 而不是"width",即使key <- "width" 并且渴望得到与my_list <- list(width = 32) 相同的结果。
“邪恶的三重奏解决方案”将是 my_list <- eval(parse(text = paste("list(", key, "=32)"))),但我正在寻找更优雅的解决方案,例如 list(eval(key) = 32)(这不起作用)。
【问题讨论】:
-
我删除了我的答案,因为它已经在问题中链接了given in the Q&A。 IMO,这是最好的选择
-
@docendodiscimus 总的来说,我同意你的看法,但不幸的是,这个不错的答案(我的赞成票)只有 3 票,并且不能直接被认为是一个合适的答案(正如 Assad Ebrahim 所说的“ hash”,并且他的代码不使用 OP 中的代码)。所以请随时再次发布您的答案(我当然会删除我自己的答案)。