R中嵌套列表的叶子名称
names of leaves of nested list in R
我想检查两个嵌套列表在最后一层是否具有相同的名称。
如果 unlist
提供了不连接名称的选项,这将是微不足道的。但是,看起来我需要一些功能 leaf.names()
:
X <- list(list(a = pi, b = list(alpha.c = 1:5, 7.12)), d = "a test")
leaf.names(X)
[1] "a" "alpha.c" "NA" "d"
我想尽可能避免任何不雅的 grepping。我觉得应该有一些简单的方法可以使用 rapply
或 unlist
...
leaf.names <- function(X) names(rlang::squash(X))
或
leaf.names <- function(X){
while(any(sapply(X, is.list))) X <- purrr::flatten(X)
names(X)
}
给予
leaf.names(X)
# [1] "a" "alpha.c" "" "d"
我想检查两个嵌套列表在最后一层是否具有相同的名称。
如果 unlist
提供了不连接名称的选项,这将是微不足道的。但是,看起来我需要一些功能 leaf.names()
:
X <- list(list(a = pi, b = list(alpha.c = 1:5, 7.12)), d = "a test")
leaf.names(X)
[1] "a" "alpha.c" "NA" "d"
我想尽可能避免任何不雅的 grepping。我觉得应该有一些简单的方法可以使用 rapply
或 unlist
...
leaf.names <- function(X) names(rlang::squash(X))
或
leaf.names <- function(X){
while(any(sapply(X, is.list))) X <- purrr::flatten(X)
names(X)
}
给予
leaf.names(X)
# [1] "a" "alpha.c" "" "d"