我有一个字符串,我想每3个字符在子字符串中添加swap,并为每次迭代生成1个输出:例如
print(str1)
DDDDDDDDDDDDDDDDDDDDDDDD
print(str2)
nnn
输出应该如下所示
nnnDDDDDDDDDDDDDDDDDDDDDD
DDDnnnDDDDDDDDDDDDDDDDDDD
DDDDDDnnnDDDDDDDDDDDDDDDD
DDDDDDDDDnnnDDDDDDDDDDDDD
DDDDDDDDDDDDnnnDDDDDDDDDD
DDDDDDDDDDDDDDDDnnnDDDDDD
DDDDDDDDDDDDDDDDDDDnnnDDD
DDDDDDDDDDDDDDDDDDDDDDnnn
任何想法?
答案 0 :(得分:3)
positions <- seq(1, nchar(str1), by=nchar(str2))
split.str1 <- substring(str1, positions, positions+nchar(str2)-1)
result <- sapply(seq(nchar(str1)/nchar(str2))
, function(i) {
split.str1[i] <- str2
paste(split.str1, collapse='')
})
result
## [1] "nnnDDDDDDDDDDDDDDDDDDDDD" "DDDnnnDDDDDDDDDDDDDDDDDD" "DDDDDDnnnDDDDDDDDDDDDDDD" "DDDDDDDDDnnnDDDDDDDDDDDD"
## [5] "DDDDDDDDDDDDnnnDDDDDDDDD" "DDDDDDDDDDDDDDDnnnDDDDDD" "DDDDDDDDDDDDDDDDDDnnnDDD" "DDDDDDDDDDDDDDDDDDDDDnnn"
感谢@BondedDust提供演示文稿的矩阵建议:
as.matrix(result)
## [,1]
## [1,] "nnnDDDDDDDDDDDDDDDDDDDDD"
## [2,] "DDDnnnDDDDDDDDDDDDDDDDDD"
## [3,] "DDDDDDnnnDDDDDDDDDDDDDDD"
## [4,] "DDDDDDDDDnnnDDDDDDDDDDDD"
## [5,] "DDDDDDDDDDDDnnnDDDDDDDDD"
## [6,] "DDDDDDDDDDDDDDDnnnDDDDDD"
## [7,] "DDDDDDDDDDDDDDDDDDnnnDDD"
## [8,] "DDDDDDDDDDDDDDDDDDDDDnnn"