我想知道是否有一个有效的(没有循环)方法来连接两个列表的元素名称。我检查了here,但这并没有帮助我,以及试图访问名称从sapply()
作为从here的答案。
假设我有以下列表:
mylist1 <- list(region1 = 1:3, region2 = 5:7)
> mylist1
$region1
[1] 1 2 3
$region2
[1] 5 6 7
和
mylist2 <- list(region1 = "#E8C506", region2 = "#F3B508")
$region1
[1] "#E8C506"
$region2
[1] "#F3B508"
如何按元素名称获取连接列表:
mylist3 <- list(region1 = list(1:3, "#E8C506"), region2 = list(5:7, "#F3B508"))
> mylist3
$region1
$region1[[1]]
[1] 1 2 3
$region1[[2]]
[1] "#E8C506"
$region2
$region2[[1]]
[1] 5 6 7
$region2[[2]]
[1] "#F3B508"
3条答案
按热度按时间jdzmm42g1#
严重依赖于从@Ajar和@Flodel到Combine/merge lists by elements names的答案,这Map到
list
而不是向量(c
)来实现您的目的:使用
base
:使用
purrr
:输出量:
nkcskrwz2#
如果两个列表中的元素相同,则可以使用
purrr::transpose()
:注意
tranpose()
使用第一个列表作为模板,并按名称匹配后续列表元素,因此,如果列表中的元素不同,则需要确保所有名称首先出现在第一个列表中,例如:zbsbpyhn3#
我希望这能成功。