用一个gsubfn()替换多个包含不同数量字符的字符串

时间:2019-01-03 10:36:08

标签: r metacharacters

这里Replace multiple strings in one gsub() or chartr() statement in R?解释为用gsubfn()在一个语句中替换一个字符处的多个字符串。例如:

x <- "doremi g-k"
gsubfn(".", list("-" = "_", " " = ""), x)
# "doremig_k"

但是我想在示例中将字符串'doremi'替换为'。这不起作用:

x <- "doremi g-k"
gsubfn(".", list("-" = "_", "doremi" = ""), x)
# "doremi g_k"

我想是因为字符串'doremi'包含多个字符,我却使用了.中的元字符gsubfn。我不知道该用什么替换它-我必须承认,我发现有时很难理解使用元字符。因此,有没有办法让我立即替换“-”和“ doremi”?

3 个答案:

答案 0 :(得分:4)

您也许可以在这里仅使用基数R var announcementDescription : String?

sub

答案 1 :(得分:3)

这对您有用吗?

gsubfn::gsubfn(pattern = "doremi|-", list("-" = "_", "doremi" = ""), x)
[1] " g_k"

关键在于此搜索:"doremi|-",它指示搜索"doremi""-"。将"|"用作or运算符。

答案 2 :(得分:3)

只是@RLave解决方案的通用解决方案-

toreplace <- list("-" = "_", "doremi" = "")
gsubfn(paste(names(toreplace),collapse="|"), toreplace, x)
[1] " g_k"