在变量之后命名列表

时间:2016-02-19 11:41:06

标签: r

我的数据库需要格式化的输入:

list(symbol1=list(param1='value1', ...), symbol2=list(param2='value2', ...), ...)

由于我不需要传递任何参数,并且只需要查看一个符号,因此我对数据库的调用将如下所示:

symbolList <- list("INSTR_SPACE::ID123456SWEDEN"=list())

(这有效)

但这是我的问题..我想传递字符串&#34; INSTR_SPACE :: ID123456SWEDEN&#34;当我创建列表时通过变量。

var = "INSTR_SPACE::ID123456SWEDEN" 
symbolList <- list(var=list())

这不会给我想要的结果,因为它只是将var声明为列表中的空列表。 我尝试过使用as.character和setNames,但我无法让它工作......

这样做的R方式是什么?

提前致谢!

1 个答案:

答案 0 :(得分:2)

它无效,因为列表list()的构造函数以list(tag = value())的形式工作,它会自动强制tag为字符串,因此var被视为字符串在父列表本身的构造函数中调用它。

正确的做法是

  1. 首先创建父列表

    symbolList<-list()
    
  2. 动态插入子元素,是的,这些元素也可以是列表。

    var<-"XYZ"
    symbolList[[var]]<-list()
    
    > symbolList
    $`INSTR_SPACE::ID123456SWEDEN`
    list()