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

如何在R语言中从DataFrame文本列移除指定停用词向量中的词汇?

移除DataFrame文本列中的指定词汇(R语言实现)

我来给你两个实用的实现方案,都是基于你提供的示例数据编写的,直接就能复用~

方法1:Base R原生实现(无需额外包)

如果不想安装额外的R包,用原生Base R就能搞定,核心是通过正则表达式匹配并移除指定词汇,同时处理多余空格的问题:

# 定义停用词和数据框
stopwords <- c("today","hot","outside","so","its")
df <- data.frame(a = c("a1", "a2", "a3"), text = c("today the weather looks hot", "its so rainy outside", "today its sunny"))

# 构建正则表达式:用\\b确保匹配完整单词(避免部分匹配,比如不会误删"itself"里的"its")
stopwords_regex <- paste0("\\b(", paste(stopwords, collapse = "|"), ")\\b")

# 替换停用词为空字符串
df$new_text <- gsub(stopwords_regex, "", df$text)
# 清理多余空格:将多个连续空格替换为单个,再去除首尾空格
df$new_text <- trimws(gsub("\\s+", " ", df$new_text))

# 查看最终结果
print(df)

方法2:Tidyverse + stringr 简洁实现

如果平时习惯使用tidyverse生态,用stringr包的函数可以让代码更简洁易读,还能一键处理空格问题:

# 先加载tidyverse包(如果没安装先运行install.packages("tidyverse"))
library(tidyverse)

stopwords <- c("today","hot","outside","so","its")
df <- data.frame(a = c("a1", "a2", "a3"), text = c("today the weather looks hot", "its so rainy outside", "today its sunny"))

df <- df %>%
  mutate(
    # 移除所有匹配的停用词
    new_text = str_remove_all(text, paste0("\\b(", paste(stopwords, collapse = "|"), ")\\b")),
    # str_squish自动清理多余空格(多个变单个+首尾去空格)
    new_text = str_squish(new_text)
  )

# 查看最终结果
print(df)

预期输出

两种方法运行后都会得到你想要的结果:

a                      text           new_text
1 a1 today the weather looks hot the weather looks
2 a2        its so rainy outside             rainy
3 a3             today its sunny             sunny

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:14:18