将全局环境变量的名称分配给列表的所有元素

问题描述 投票:0回答:1

标题有点松散,但我想为列表中的每个元素分配该元素在全局环境中出现的名称。

a<-1
b<-2
c<-3
l<-list(a,b,c)

我想要的是相当于以下内容:

l<-list("a"=a,"b"=b,"c"=c)

names(l)<-c("a","b","c")

以便

names(l)
返回
c("a","b","c")
。 由于我可以拥有包含大量元素的列表,因此我宁愿避免最简单的解决方案所需的所有键入 (
l<-list("a"=a,"b"=b,"c"=c)
)。

我知道我可以用

names(as.list(.GlobalEnv))
列出全局环境中所有变量的名称,但并非
.GlobalEnv
中的所有变量都包含在列表
l
中。 我也知道
deparse(substitute(a))
返回
"a"
,但它在循环或
lapply
调用中不起作用。 也许解决方案很简单,但我无法弄清楚。

我怎样才能以编程方式做到这一点?

r list names
1个回答
0
投票

使用

tibble::lst()

library(tibble)

l <- lst(a, b, c)

结果:

$a
[1] 1

$b
[1] 2

$c
[1] 3
© www.soinside.com 2019 - 2024. All rights reserved.