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

如何在R中生成单词向量的所有无序组合并添加+分隔符?

生成单词向量的所有无序组合(带"+"分隔符)

输入向量:

str <- c("The", "Cat", "Jumped")

需求说明:生成该向量的所有无序组合,多元素组合用+作为分隔符,需避免重复的顺序颠倒组合(如仅保留"The + Cat",不出现"Cat + The"),最终输出需匹配以下结果:

want <- c("The", "Cat", "Jumped", 
          "The + Cat", "The + Jumped",
          "Cat + Jumped",
          "The + Cat + Jumped")

解决方案

利用combn函数(本身就生成无序组合),结合遍历所有可能的组合长度,即可实现需求:

str <- c("The", "Cat", "Jumped")

# 遍历1到向量长度的所有组合规模,拼接成目标格式
result <- unlist(lapply(1:length(str), function(n) {
  combn(str, n, paste, collapse = " + ")
}))

# 输出结果
result

代码说明

  • lapply(1:length(str), ...):遍历所有可能的组合长度(从单个元素到全量元素)
  • combn(str, n, paste, collapse = " + "):对每个长度n,生成所有无序组合,并自动用+拼接组合内的元素
  • unlist():将列表形式的结果转换为一维向量,与目标输出格式完全匹配

运行代码后,result与want完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:42:39