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

R语言技术问询:固定字母序列中G的位置,打乱其余字母后插回G

解决方案

你可以通过以下步骤把G插回原位置,完整代码如下:

sequence <- "MGGGRYSGTK"

# 找到所有G的位置
G_positions <- which(strsplit(sequence, "")[[1]] == "G")

# 移除G并打乱剩余字符
sequence_no_G <- gsub("G", "", sequence)
shuffled_chars <- sample(strsplit(sequence_no_G, "")[[1]])

# 创建结果向量,先初始化空位置
result <- character(nchar(sequence))
# 填充G到原位置
result[G_positions] <- "G"
# 填充打乱后的非G字符到剩余位置
result[-G_positions] <- shuffled_chars

# 合并成最终序列
final_sequence <- paste(result, collapse = "")
final_sequence

代码说明

  • 修正了G_positions的获取逻辑:原代码直接用sequence == "G"会报错,因为字符串无法直接和单个字符做逐位比较,需要先通过strsplit把字符串拆成字符向量再判断。
  • 创建与原序列长度一致的空字符向量result,先将所有G放回原本的位置。
  • 剩余的空位(即非G的原位置)用打乱后的非G字符依次填充,最后合并成完整的目标字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:54:55