gpt4 book ai didi

r - 在保留第二个列表名称的同时取消列出列表列表

转载 作者:行者123 更新时间:2023-12-04 00:53:37 25 4
gpt4 key购买 nike

我想取消列出列表的列表,同时保留第二个列表的名称。

例如,如果有这样一个列表:

$`listA`  
$`listA_a`
[1] 1 2
$`listA_g`
[1] 1 2
$`listB`
$`listB_b`
[1] 1 2

我想获得这个列表:

$`listA_a`
[1] 1 2
$`listA_g`
[1] 1 2
$`listB_b`
[1] 1 2

我知道 unlist 中有一个保留名称的参数(use.names = T,默认为 true)但是它会保留第一个列表的名称并在有多个元素(“listA1”、“listA2”、“listB”)时添加一个数字。

(这是一个示例,但在我的代码中,列表的元素是绘图,所以我不能使用 data.frame 或任何东西......我无法轻易重建名称,因为它们包含有关用于绘图的数据的信息) .

非常感谢您的帮助!

佩尼尔

最佳答案

试试这个方法。您可以将 unlist()recursive=F 一起使用以保留所需的结构,然后格式化名称。这里的代码:

#Data
List <- list(listA = list(listA_a = c(1, 2), listA_g = c(1, 2)), listB = list(
listB_b = c(1, 2)))
#Code
L <- unlist(List,recursive = F)
names(L) <- gsub(".*\\.","", names(L) )
L

输出:

L
$listA_a
[1] 1 2

$listA_g
[1] 1 2

$listB_b
[1] 1 2

或者没有正则表达式的更简化的版本(非常感谢 @markus):

#Code 2
L <- unlist(unname(List),recursive = F)

输出:

L
$listA_a
[1] 1 2

$listA_g
[1] 1 2

$listB_b
[1] 1 2

关于r - 在保留第二个列表名称的同时取消列出列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64427055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com