如何生成带有重复主题的序列,并插入随机字符

时间:2019-04-15 09:16:20

标签: r random sequence

我正在尝试生成某些字母序列,其中包含重复的主题,并散布着随机字母。

例如:ABXXXXXXXABXXXXXXXABXXXXXXX,其中X = A,B,C或D,是随机选择的。

我还需要指定序列的总长度,更改重复的字母以及重复的频率(例如,使BC每5个字符重复一次)。

可悲的是,我只能生成定义长度的随机序列,其中包含选择字符:

set.seed(42)
x <- sample(letters[c(1, 2, 3, 4)], size=200, replace = TRUE)

2 个答案:

答案 0 :(得分:1)

这是一个自定义函数,它每隔n个字符重复一个固定模式,

array_filter()

答案 1 :(得分:0)

构建使用stringi和for循环的函数:

library(stringi)

generateRandomSequence <- function(fixedPart, randomLength, repititions){
  output <- ""

  for(i in 1: repititions){
    newPart <- paste(fixedPart, stri_rand_strings(1, randomLength) ,sep="")
    output <- paste(output,newPart,sep="")
  }

  return(output)
}

我们可以调用函数:

generateRandomSequence("AB",5,2)

给出结果:“ ABuwHpdABWj8eh”

第一个参数“ AB”是重复序列。第二个参数是散布在重复序列中的随机字符数。第三部分控制重新排列的数量。