用“&”替换字符中的最后一个逗号

时间:2019-02-07 16:11:46

标签: r replace character

我有许多不同的字符,它们具有以下结构:

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

我想用“&”删除该字符的最后一个逗号,即所需的输出应如下所示:

# Desired output
"char1, char2 & char3"

如何用“&”替换字符的最后一个逗号?

4 个答案:

答案 0 :(得分:13)

一个选项是stri_replace_last中的stringi

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

答案 1 :(得分:8)

您可以使用sub

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

答案 2 :(得分:3)

您可以拆分和拆分它。

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

答案 3 :(得分:3)

我们也可以将str_locate_allstr_sub一起使用:

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

# [1] "char1, char2 & char3"