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

R语言不使用dplyr包实现数据过滤 求Base环境等效替代函数

R Base环境下dplyr::filter的替代方案

存在两种隶属于R Base Environment的原生方案,可实现与dplyr::filter()完全一致的行过滤功能:

  • subset() 函数
    是和dplyr::filter()使用习惯最接近的原生函数,支持直接传入过滤条件,无需反复指定数据框名,还可同时筛选需要保留的列。
    示例:过滤mtcars数据集中气缸数为6、油耗表现优于20英里/加仑的观测:
    # dplyr写法参考
    dplyr::filter(mtcars, cyl == 6, mpg > 20)
    # 对应base::subset写法
    subset(mtcars, cyl == 6 & mpg > 20)
    # 同时仅保留mpg、wt两列的写法
    subset(mtcars, cyl == 6 & mpg > 20, select = c(mpg, wt))
    
  • 基础方括号索引语法
    是R最原生的数据筛选实现方式,利用数据框[行过滤条件, 列选择参数]的语法规则实现过滤,不需要调用额外函数。
    示例:实现和上面完全一致的过滤需求:
    # 仅过滤行
    mtcars[mtcars$cyl == 6 & mtcars$mpg > 20, ]
    # 同时过滤行和列
    mtcars[mtcars$cyl == 6 & mtcars$mpg > 20, c("mpg", "wt")]
    

两种原生方案的过滤逻辑与dplyr::filter()完全一致,仅语法细节存在差异,无需安装额外包即可直接调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:12:02