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

如何在R语言中生成侧边字符串拼接至中心串两端的全组合结果

解决方案

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

直接用expand.grid生成左右元素的全组合,再拼接字符串即可,适配任意长度的sides、任意长度的成员字符串:

# 定义原始变量
center <- "XXXXXXX"
sides <- c("aa", "bb", "cc")

# 生成所有左右组合
comb_df <- expand.grid(left = sides, right = sides, stringsAsFactors = FALSE)
# 拼接得到所有结果字符串
all_res <- paste0(comb_df$left, center, comb_df$right)

# 如需和示例格式一致,按左元素分组带空行输出
for (cur_left in sides) {
  cur_group <- all_res[comb_df$left == cur_left]
  cat(paste(cur_group, collapse = "\n"), "\n\n")
}

运行后输出和你给出的预期结果完全一致。

方法2:tidyverse风格实现

如果你习惯用tidyverse语法,可以用tidyr::crossing生成全组合,代码更简洁:

library(tidyr)
library(dplyr)

center <- "XXXXXXX"
sides <- c("aa", "bb", "cc")

all_res <- crossing(left = sides, right = sides) %>%
  mutate(full_str = paste0(left, center, right)) %>%
  pull(full_str)

# 同样可以按规则打印输出
group_walk(group_by(crossing(left = sides, right = sides), left), 
           ~ cat(paste0(.x$left, center, .x$right, collapse = "\n"), "\n\n"))

两种方法的核心逻辑都是生成sides元素的两两全组合,再和中间字符串拼接,不管sides有多少个成员、成员字符串长度是多少都能正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:36:02