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

如何在R中根据指定列的单词数量删除dataframe中的对应行

R按列的单词数量筛选数据框方案

以下是两种可直接运行的实现方式,均可匹配需求保留id列含2个单词的行:


方法1:基础R实现(无需第三方包)

核心逻辑通过判断字符串中是否存在空格完成筛选(适配你明确的列内仅存在1/2个单词的场景):

# 示例数据
df <- data.frame(id = c("one one","one two","one","two one","two","two one"),
               data = seq(1:6))

# 基础筛选:直接匹配空格
result <- df[grepl(" ", df$id), ]

# 兼容首尾空格的稳妥写法(避免首尾多余空格导致误判)
# result <- df[grepl(" ", trimws(df$id)), ]

运行后result将自动保留你需要的第1、2、4、6行。


方法2:tidyverse生态实现(可读性更高)

如果项目使用tidyverse工具链,可直接统计单词数完成筛选,适配多空格分隔、首尾带空格等异常格式场景:

library(dplyr)
library(stringr)

result <- df %>%
  # 统计非空格连续字符的数量,保留等于2的行
  filter(str_count(id, "\\S+") == 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:12:03