gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:02:03 24 4
gpt4 key购买 nike

假设我有两个这样的向量:

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 的输入字符串。

为了安全起见,您可以对此进行调整 - 类似于 RUser 的回答 - 在替换之前检查单词边界:
stri_replace_all_regex(string, paste0("\\b", a, "\\b"), b, vectorize_all = FALSE)

这将确保您不会意外更换 hishwas , 例如。

关于用模式替换 R 中的字符串并替换两个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com