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

如何基于特定字符串筛选DataFrame中的行?

根据特定字符串筛选DataFrame行的方法

首先先把你提供的不完整DataFrame补全为可运行的R代码:

df <- data.frame(
  col = c(
    "在低浓度下不会解离的体。{ECO:0000269|PubMed:27918561}.细胞核 {ECO:0000250}",
    "细胞核 {ECO:0000250}.内质网膜 {ECO:0000269|PubMed:24807418}; ",
    "细胞核 {ECO:0000269|PubMed:15897886}.",
    "细胞核 {ECO:0000305}."
  ),
  row.names = c(NA, -4L)
)

以下是两种常用的筛选方法:

方法一:基础R原生实现

利用grepl()函数检测字符串是否包含目标内容,返回逻辑向量后用于行索引筛选:

# 保留包含"细胞核"的所有行
filtered_df <- df[grepl("细胞核", df$col), ]

# 保留包含特定ECO编号(如ECO:0000269)的行
filtered_df <- df[grepl("ECO:0000269", df$col), ]

如果需要精确匹配完整字符串而非部分包含,设置fixed=TRUE参数:

# 精确匹配"细胞核 {ECO:0000250}"的行
filtered_df <- df[grepl("细胞核 {ECO:0000250}", df$col, fixed = TRUE), ]

方法二:tidyverse工具链实现

使用dplyr的filter()结合stringr的str_detect()函数,语法更直观:

library(dplyr)
library(stringr)

# 保留包含"细胞核"的行
filtered_df <- df %>%
  filter(str_detect(col, "细胞核"))

# 保留包含ECO:0000269的行
filtered_df <- df %>%
  filter(str_detect(col, "ECO:0000269"))

精确匹配时用fixed()包裹目标字符串:

filtered_df <- df %>%
  filter(str_detect(col, fixed("细胞核 {ECO:0000250}")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:10:49