初始化时没有eval的可变命名列表元素(parse(paste()))

时间:2016-07-20 15:22:20

标签: r list naming

我的问题类似于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)(这不起作用)。

1 个答案:

答案 0 :(得分:1)

用户docendo discimus给出了答案setNames(list(32), key),但“删除了[他的]答案,因为问题已经链接given in the Q&A。”

不幸的是,这个很好的答案(我的upvote)只有3票并且不能直接认出是一个合适的答案(因为Assad Ebrahim谈到“哈希”并且他的代码不使用OP中的代码)。