加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

用模式替换R中的字符串并替换两个向量

发布时间:2020-12-15 05:21:54 所属栏目:Java 来源:网络整理
导读:假设我有两个这样的向量: a - c("this","is","test")b - c("that","was","boy") 我也有一个像这样的字符串变量: string - "this is a story about a test" 我想替换字符串中的值,以便它成为以下: string - "that was a story about a boy" 我可以使用for
假设我有两个这样的向量:

a <- c("this","is","test")
b <- c("that","was","boy")

我也有一个像这样的字符串变量:

string <- "this is a story about a test"

我想替换字符串中的值,以便它成为以下:

string <- "that was a story about a boy"

我可以使用for循环来做这个,但我希望这是矢量化的.我该怎么做?

解决方法

如果你愿意使用非基础包,stringi在这里工作得很好:

stringi::stri_replace_all_fixed(string,a,b,vectorize_all = FALSE)
#[1] "that was a story about a boy"

注意,对于长度> 1的输入字符串,这也是相同的方式. 1.

为了安全起见,您可以对此进行调整 – 类似于RUser的答案 – 在更换之前检查字边界:

stri_replace_all_regex(string,paste0("b","b"),vectorize_all = FALSE)

例如,这将确保您不会意外地将其替换为hwas.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读