首页 > 解决方案 > 我可以使用 gsub 函数找到一个模式并用 2 个不同的模式替换它吗?

问题描述

我需要帮助来找到一种模式并用两种不同的方式替换它。例如,该词"Code/i"应替换为"Code, Codi"

我应该使用什么代码来替换以逗号分隔的两个结果?我是 R 新手,假设需要使用一些元字符或正则表达式?另外,我需要使用基本功能并且没有外部包。感谢任何反馈和帮助,因为我被卡住了!谢谢

a <- c("Code/i", "Karina")

gsub(pattern = "/i", replacement= "", a)

期望的结果:

"Code, Codi, Karina"

标签: rgsubcharacter-replacement

解决方案


您可以在相关值(包含 pattern 的那些)上使用subpaste0子集您的向量:a/

数据:

a <- c("Code/i", "Karina", "Jimmy", "John Bolton", "Pete/i")

解决方案:

c(paste0(sub("/.*", "", a[grepl("/", a)]), ", ", sub("./", "", a[grepl("/", a)])), a[!grepl("/", a)])

结果:

[1] "Code, Codi"  "Pete, Peti"  "Karina"      "Jimmy"       "John Bolton"

推荐阅读