我的数据库需要格式化的输入:
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方式是什么?
提前致谢!
答案 0 :(得分:2)
它无效,因为列表list()
的构造函数以list(tag = value())
的形式工作,它会自动强制tag
为字符串,因此var
被视为字符串在父列表本身的构造函数中调用它。
正确的做法是
首先创建父列表
symbolList<-list()
动态插入子元素,是的,这些元素也可以是列表。
var<-"XYZ"
symbolList[[var]]<-list()
> symbolList
$`INSTR_SPACE::ID123456SWEDEN`
list()