Заменить последнюю запятую в символе на «&» - PullRequest
0 голосов
/ 07 февраля 2019

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

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

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

# Desired output
"char1, char2 & char3"

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

Ответы [ 4 ]

0 голосов
/ 07 февраля 2019

Мы также можем использовать 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"
0 голосов
/ 07 февраля 2019

Вы можете разделить и снять его.

u <- unlist(strsplit(x, ""))
u[tail(grep(",", u), 1)] <- " &"
paste0(u, collapse="")
# [1] "char1, char2 & char3"
0 голосов
/ 07 февраля 2019

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

sub(",([^,]*)$"," &\\1", x)
# [1] "char1, char2 & char3"
0 голосов
/ 07 февраля 2019

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

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