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

如何使用tidyverse筛选R数据框中某列恰好含两个单词的行

实现方法

你可以直接用tidyverse生态里stringr包的str_count()函数搭配filter()实现,统计物种名列的单词数量后筛选等于2的行即可,完整代码如下:

# 加载tidyverse
library(tidyverse)

# 筛选行
df_result <- df %>%
  filter(str_count(sp_name, "\\b\\w+\\b") == 2)

代码说明

  • str_count() 用于统计字符串中匹配指定规则的内容次数,这里的正则表达式\\b\\w+\\b会匹配完整的独立单词,避免前后空格、多空格分隔的异常情况影响统计结果
  • 如果你的数据里物种名都是单个空格分隔、没有前后多余空格,也可以简化写法:
    df_result <- df %>%
      filter(str_count(sp_name, " ") == 1)
    

运行后得到的结果就是你需要的恰好两个单词的行:

> df_result
              sp_name value
1 Xylopia brasiliensis     1
2    Xylosma tweediana     2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:03