我试图创建一个函数,在该函数中创建一个命名列表(我需要使用此特定结构,因为调用下游函数是必需的)。但是,尽管名称被定义为函数的参数,但并没有实现。这是一个最小的示例:
make_list = function(first, second){
return(list(first=second))
}
make_list("name", "value")
#$`first`
#[1] "value"
请注意名称“ first”,而不是“ name”。首先,它只是作为函数中的一个参数使用,而并非如此。任何建议都非常感谢。
答案 0 :(得分:5)
在list(first=second)
的声明中,“ first
”是属性名称,而不是变量first
。
make_list = function(first, second){
ret = list()
ret[[first]] = second
return(ret)
}
make_list("name", "value")
#$name
#[1] "value"
答案 1 :(得分:1)
您可以使用setNames
在一行中完成此操作。
make_list <- function(first, second) {
setNames(list(second), first)
}
make_list("name", "value")
# $name
# [1] "value"