我有以下嵌套列表的简单示例:
list(list(structure(list(group = "a", def = "control"), .Names = c("group",
"def"))), list(structure(list(group = "b", def = "disease1"), .Names = c("group",
"def"))))
结构如下:
str(t1)
List of 2
$ :List of 1
..$ :List of 2
.. ..$ group: chr "a"
.. ..$ def : chr "control"
$ :List of 1
..$ :List of 2
.. ..$ group: chr "b"
.. ..$ def : chr "disease1"
有没有一种简单的方法可以仅获取满足特定条件的嵌套列表。举个例子,如果我只知道组的名称,例如“a”,我将如何获得相应的子列表;在示例中,这将是第一个嵌套列表:
[[1]]
[[1]]$group
[1] "a"
[[1]]$def
[1] "control"
所以本质上我正在寻找一种申请方式group == "a"
在这个嵌套列表结构中。
我们可以使用提取列表的子列表lapply
。我们也可以写一个函数。
get_sublist <- function(group_name) {
lst[lapply(lst, function(x) x[[1]][[1]]) == group_name]
}
get_sublist("a")
#[[1]]
#[[1]][[1]]
#[[1]][[1]]$group
#[1] "a"
#[[1]][[1]]$def
#[1] "control"
get_sublist("b")
#[[1]]
#[[1]][[1]]
#[[1]][[1]]$group
#[1] "b"
#[[1]][[1]]$def
#[1] "disease1"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)