假设我有
label <- 'My val'
我尝试创建列表
Output <- list(
label = pi
)
我知道列表中第一个(唯一)对象的名称是
"label"
,但我想要 "My val"
。
我明白我能做到
names(Output) <- label
但是这个列表很长,我宁愿在
list
函数中命名它。
不可以,使用
list()
函数创建列表时不能引用名称变量。它只会将任何变量名称解释为条目的名称。但构建列表后,您可以更改名称:
label <- 'My val'
Output <- list(pi)
names(Output)=label
另一个选项是
lst
来自 dplyr
library(dplyr)
lst(!!label := pi)
#$`My val`
#[1] 3.141593
也许这可以帮助您,但如果您可以分享更详细的示例,那就更好了,因为我认为可能涉及更多变量名称:
label <- 'My val'
Output <- list(
label = pi
)
Output |>
setNames(label)
$`My val`
[1] 3.141593
data.tables Replace2() 可能会有所帮助:
library(data.table)
labels <- list(l1 = 'My val', l2 = 'Other label')
Output <- eval(data.table::substitute2(
list( l1 = pi,
l2 = exp(1)),
env = labels
) )