You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从R列表中筛选仅含1行且值为1的data.frame元素?

从列表中筛选符合特定条件的元素

你可以用R的基础函数Filter()直接实现这个需求,结合两个判断条件:数据框仅含1行,且该行的CNT列值等于1。

步骤示例:

  1. 先定义你的原始列表:
asd <- list(colb = structure(list(CNT = 1:3), class = "data.frame", row.names = c(NA,3L)), 
            cola = structure(list(CNT = 1L), class = "data.frame", row.names = 1L), 
            colc = structure(list(CNT = 2L), class = "data.frame", row.names = 2L))
  1. 执行筛选:
# 筛选满足双条件的列表元素
target_elements <- Filter(function(x) nrow(x) == 1 && x$CNT == 1, asd)

执行后target_elements里就只有cola这个符合条件的元素了。

补充:用tidyverse工具实现

如果你习惯用tidyverse生态的purrr包,也可以用keep()函数,语法更简洁:

library(purrr)

target_elements <- keep(asd, ~ nrow(.x) == 1 && .x$CNT == 1)

两种方法的效果完全一致,选你顺手的用就行。

内容的提问来源于stack exchange,提问作者mapvin vin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:05:18