我想有效将character
对象中的元素替换为特定位置的其他特定元素(这些地方是我知道的索引,因为它们是{{1}的结果功能)。
我想要一些gregexpr
函数,其工作方式如下:
foo
给我:
foo("qwerty", c(1,3,5), c("z", "x", "y"))
我搜索了[1] "zwxryy"
包裹文件pdf,但没有想到我的想法。提前感谢您的任何建议。
答案 0 :(得分:1)
例如:
xx <- unlist(strsplit("qwerty",""))
xx[c(1,3,5)] <- c("z", "x", "y")
paste0(xx,collapse='')
[1] "zwxryy"
答案 1 :(得分:0)
如果你没有那么多要替换的字符,你也可以尝试下面的那个
st1 <- "qwerty"
gsub("^.(.).(.).","z\\1x\\2y", st1)
#[1] "zwxryy"
答案 2 :(得分:0)
在stringi
包中,stri_sub
函数的作用如下:
a <- "12345"
stri_sub(a, from=c(1,3,5),len=1) <- letters[c(1,3,5)]
a
## [1] "a2345" "12c45" "1234e"
它几乎是你想要的。只需在循环中使用它:
a <- "12345"
for(i in c(1,3,5)){
stri_sub(a, from=i,len=1) <- letters[i]
}
a
## [1] "a2c4e"
请注意,此类功能在我们的TODO列表中,请检查: https://github.com/Rexamine/stringi/issues?state=open