Я хотел бы заменить каждый 5-й символ в одной строке на *.Вот MWE:
x <- "Mary had a little lamb."
pos <- c(5, 10, 15, 20)
Я бы хотел, чтобы вывод:
[1] "Mary*had * lit*le l*amb."
string::sub_str()
мог идентифицировать символы в этих позициях:
> stringr::str_sub(string = x, start = pos, end = pos)
[1] " " "a" "t" "a"
Однако их замена не работает, поскольку sub_str()
ожидает, что параметр string будет иметь вектор такой же длины, что и start и end параметры.Не найдя этого, он перезаписывает string для соответствия длине start / end и выполняет одну замену для каждого элемента:
> stringr::str_sub(string = x, start = pos, end = pos) <- "*"
> x
[1] "Mary*had a little lamb." "Mary had * little lamb."
[3] "Mary had a lit*le lamb." "Mary had a little l*mb."
Anyидеи о том, как получить желаемый результат просто, с stringr:sub_str()
или без него, но желательно без цикла for?