我的问题类似于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)
(这不起作用)。
答案 0 :(得分:1)
用户docendo discimus给出了答案setNames(list(32), key)
,但“删除了[他的]答案,因为问题已经链接given in the Q&A。”
不幸的是,这个很好的答案(我的upvote)只有3票并且不能直接认出是一个合适的答案(因为Assad Ebrahim谈到“哈希”并且他的代码不使用OP中的代码)。