R语言:如何从嵌套列表中提取符合条件的index向量
实现方法
核心思路是编写递归函数遍历所有层级的嵌套列表,检查每个子列表是否满足包含good=TRUE的条件,符合条件就提取对应index向量。
代码实现
# 定义递归提取函数 extract_good_index <- function(x) { result <- list() # 仅处理列表类型的元素 if (is.list(x)) { # 检查当前列表是否符合good=TRUE的要求 if (!is.null(x$good) && isTRUE(x$good)) { result <- append(result, list(x$index)) } # 递归遍历当前列表的所有子元素 for (sub_item in x) { result <- append(result, extract_good_index(sub_item)) } } return(result) } # 调用函数处理目标嵌套列表 ans <- extract_good_index(listMaster) # 按照要求给结果命名 names(ans) <- paste0("index.", seq_along(ans))
效果验证
运行上述代码后得到的ans和你给出的期望输出完全一致,且该方法支持任意深度的嵌套列表结构,无需手动适配嵌套层级。
内容的提问来源于stack exchange,提问作者Electrino
相关产品推荐
相关产品推荐

