Подтвердить что ты не робот

Заменить последнюю запятую в символе на "&"

У меня есть много разных персонажей, которые имеют следующую структуру:

# Example
x <- "char1, char2, char3"

Я хочу удалить последнюю запятую этого символа с "&", то есть желаемый результат должен выглядеть следующим образом:

# Desired output
"char1, char2 & char3"

Как я могу заменить последнюю запятую символа на "&"?

4b9b3361

Ответ 1

Один из вариантов stri_replace_last из stringi

library(stringi)
stri_replace_last(x, fixed = ',', ' &')
#[1] "char1, char2 & char3"

Ответ 2

Вы можете использовать sub:

sub(",([^,]*)$"," &\\1", x)
# [1] "char1, char2 & char3"

Ответ 3

Вы можете расколоть и расколоть это.

u <- unlist(strsplit(x, ""))
u[tail(grep(",", u), 1)] <- " &"
paste0(u, collapse="")
# [1] "char1, char2 & char3"

Ответ 4

Мы также можем использовать str_locate_all с str_sub:

library(stringr)
pos <- str_locate_all(x, ',')[[1]][2, ]
str_sub(x, pos[1], pos[2]) <- " &"

# [1] "char1, char2 & char3"