我有两个不同结构的列表。在一个函数中,我想获得一个在两个列表中具有相同名称的列。有没有通用的方法来处理这个问题?
list_1_1_1 <- list(list(list(tibble::tibble("a" = c(1, 2), "b"=c(3, 4))), list("a"=c(1, 2))))
list_1_1_1
# Call column called b
list_1_1_1[[1]][[1]][[1]]$b
list_1_1 <- list(list(tibble::tibble("a" = c(1, 2), "b"=c(3, 4))), list("a"=c(1, 2)))
list_1_1
# Call column called b
list_1_1[[1]][[1]]$b
Run Code Online (Sandbox Code Playgroud)
我想获得名为 b 的列,它具有适用于两种不同情况/示例的同一行代码,这可能吗?提前致谢。
也许是这样的。
foo <- function(l, pattern) {
u <- unlist(l)
unname(u[grep(pattern, names(u))])
}
foo(list_1_1_1, "b")
# 3 4
foo(list_1_1, "b")
# 3 4
Run Code Online (Sandbox Code Playgroud)