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

如何基于特定术语词典在R中创建二元变量

R文本匹配生成二元变量的正确实现

原代码的问题

  • mutate()里不用写data_zoo$animals,直接用变量名定义新列即可
  • 原判断条件是把文本和字符串"animals_dict"做完全相等匹配,根本没用到你定义的动物词典,逻辑完全错误

正确代码

先确保加载dplyr和stringr包(没加载的话先运行以下代码):

library(dplyr)
library(stringr)

接着执行生成二元变量的代码:

# 把词典转成正则匹配模式,用|分隔多个关键词
animal_pattern <- paste(animals_dict, collapse = "|")

# 生成二元变量:包含任一动物术语标记为1,否则为0
data_zoo <- data_zoo %>%
  mutate(animals = if_else(str_detect(text, animal_pattern), 1, 0))

额外提示

如果需要精确匹配完整单词(避免匹配到"catty"这类包含"cat"的衍生词),可以给词典中的词加上单词边界符:

animal_pattern <- paste0("\\b", animals_dict, "\\b", collapse = "|")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:44:57