我的字符串很长
purch_dt
8/18/2014
9/27/2014
1/3/2015
10/29/2016
11/5/2016
2/9/2017
3/1/2017
6/29/2017
12/27/2017
2/25/2018
现在,我想用V1替换“ replace_position”中列出的字符位置,并将新字符串另存为名为位置更改的新文件。重复更改每个位置
string <- "bdbakdljbbkhkcksbfjsvcjsvksnclndkbksbcsbck"
以此类推。
预期结果:
replace_position <- c(4, 5, 19, 24, 30, 36, 39, 40)
v1 <- c("E", "N", "M", "o", "p", "q", "r", "S")
write.csv("4.csv")
write.csv("5.csv")
第19位,依此类推 还有其他方法可以在R中使用for循环或正则表达式吗?
答案 0 :(得分:1)
如果打算用单个字符替换该位置上的字符,请使用substring
for(i in seq_along(replace_position))
substr(str1, replace_position[i], replace_position[i]) <- "#"
str1
#[1] "bdb##dljbbkhkcksbf#svcj#vksnc#ndkbk#bc##ck"
如@RuiBarradas所述,可以使用cat
cat(str1, file = "file1.txt")
基于OP的注释,如果替换的值基于不同的位置而不同,则只需更改分配的rhs
for(i in seq_along(replace_position))
substr(str1, replace_position[i], replace_position[i]) <- v1[i]
str1
#[1] "bdbENdljbbkhkcksbfMsvcjovksncpndkbkqbcrSck"
replace_position <- c(4, 5, 19, 24, 30, 36, 39, 40)
str1 <- "bdbakdljbbkhkcksbfjsvcjsvksnclndkbksbcsbck"
v1 <- c("E", "N", "M", "o", "p", "q", "r", "S")