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

R语言:筛选出后缀不在指定子串集合中的目标字符串

解决方法:筛选后缀不在指定列表中的字符串元素

这问题其实不难,咱们可以通过提取后缀+匹配判断的方式快速解决,不用复杂的方法,下面是具体步骤和代码:

步骤说明

  1. 从larger_strings的每个元素中提取下划线后面的后缀部分;
  2. 将后缀转为小写,和channels的格式保持一致;
  3. 判断哪些后缀不在channels列表里,筛选出对应的原字符串元素。

完整代码

# 给定的原始数据
channels <- tolower(c("Digital","Social","TV","YouTube","Radio","OOH","Facebook","Reddit","Podcast","Instagram","LinkedIn","Twitter","TikTok","Print","Cinema","VOD","OTS","xmedia"))

larger_strings <- c("weights_digital","weights_tv","weights_social","weights_ooh","weights_print","weights_appletv")

# 提取下划线后缀并转小写
suffixes <- tolower(sub(".*_", "", larger_strings))

# 筛选出后缀不在channels中的元素
not_included <- larger_strings[!suffixes %in% channels]

# 查看结果
not_included

代码解释

  • sub(".*_", "", larger_strings):使用正则表达式匹配每个字符串中下划线及之前的所有内容,替换为空后得到下划线后的后缀;
  • tolower():把后缀转为小写,确保和channels的大小写一致,避免匹配误差;
  • !suffixes %in% channels:生成一个逻辑向量,标记哪些后缀不在channels里;
  • 最后用这个逻辑向量索引larger_strings,就能得到咱们要的目标元素。

运行代码后,not_included的结果就是"weights_appletv",完全符合你的期望!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:30:57