如果我有一个变量,例如name.string <- "name"
,我该如何使用它来在列表中指定值的名称以返回类似
$name
[1] "value"
使用list(name.string = "value")
返回$name.string [1] value
。
由于我似乎无法弄清楚的原因,list(get("name.string") = "value")
返回
Error: unexpected '=' in "list(get("name.string") ="
。
显然,我对手动解决方案(在作业中写“名”)不感兴趣,因为这是为数千行复制的。
答案 0 :(得分:1)
您可以使用双括号按号码或名称进行访问和分配:
mylist <- list()
name.string <- "name"
name.string2 <- "name2"
value <- "hello"
value2 <- "world"
mylist[[name.string]] <- value
mylist[[name.string2]] <- value2
# an alternative to the previous line
# that fails to create a name:
mylist[[2]] <- value2
有关此类作业的详细信息,请参阅help("[[<-")
。
正如Matthew Plourde所说,这会动态增加您的列表,因此最好预先分配,例如mylist <- vector("list",2)
。
答案 1 :(得分:0)
您可以使用:
structure(list('value'), names=name.string)
或
l <- list('value')
names(l) <- name.string
甚至
within(list(), assign(name.string, 'value'))
但不要使用最后一个。