gpt4 book ai didi

R:传递字符串向量以替换字符串中的所有实例

转载 作者:行者123 更新时间:2023-12-02 09:26:49 24 4
gpt4 key购买 nike

如果我有:

mystring<-"I have one cat, two dogs and three rabbits"
numlist<-c("one","two","three")

如何将 numlist 传递给 gsub 并替换 mystring 中匹配的所有实例,以便我得到:

"I have ##NUMBER## cat, ##NUMBER## dogs and ##NUMBER## rabbits"

我试过:

> lapply(mystring,arg1=numlist,function(x,arg1) gsub(arg1,"##NUMBER##",x))
[[1]]
[1] "I have ##NUMBER## cat, two dogs and three rabbits"

Warning message:
In gsub(arg1, "##NUMBER##", x) :
argument 'pattern' has length > 1 and only the first element will be used

因为 gsub 没有向量化。但是我认为 lapply 可以解决这个问题?

最佳答案

如果需要用数字替换,可以使用gsubfn

 library(gsubfn)
gsubfn("\\w+", as.list(setNames(1:3, numlist)), mystring)
#[1] "I have 1 cat, 2 dogs and 3 rabbits"

编辑:我认为我们需要替换为与“numlist”中的单词相对应的数字。但是,如果我们需要用 ##NUMBER## 标志替换,一个选项是 mgsub

 library(qdap)
mgsub(numlist, "##NUMBER##", mystring)
#[1] "I have ##NUMBER## cat, ##NUMBER## dogs and ##NUMBER## rabbits"

关于R:传递字符串向量以替换字符串中的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37183628/

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