无法根据函数参数创建列表

时间:2018-07-29 18:39:38

标签: r list function

我试图创建一个函数,在该函数中创建一个命名列表(我需要使用此特定结构,因为调用下游函数是必需的)。但是,尽管名称被定义为函数的参数,但并没有实现。这是一个最小的示例:

make_list = function(first, second){
  return(list(first=second))
}
make_list("name", "value")
#$`first`
#[1] "value"

请注意名称“ first”,而不是“ name”。首先,它只是作为函数中的一个参数使用,而并非如此。任何建议都非常感谢。

2 个答案:

答案 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"