gpt4 book ai didi

r - 向量化 Gsub 的问题

转载 作者:行者123 更新时间:2023-12-05 01:08:35 26 4
gpt4 key购买 nike

目的:
我是新人R ,但我试图让自己熟悉 R 中的编程.在当前的任务中,我想替换出现在 corpus 中的多个单词。同时保持 corpus 的结构.
Gsub不允许向量用于模式和相应的替换,所以我决定写一个修改过的 Gsub功能。 (我知道 Gsubfn 函数,但我也想培养一些编程技能。)

数据生成

a<- c("this is a testOne","this is testTwo","this is testThree","this is testFour")
corpus<- Corpus(VectorSource(a))
pattern1<- c("testOne","testTwo","testThree")
replacement1<- c("gameOne","gameTwo","gameThree")

修改 Gsub
gsub2<- function(myPattern, myReplacement, myCorpus, fixed=FALSE,ignore.case=FALSE){
for (i in 1:length(myCorpus)){
for (j in 1:length(myPattern)){
myCorpus[[i]]<- gsub(myPattern[j],myReplacement[j], myCorpus[[i]], fixed=TRUE)
}
}
}

代码执行
gsub2(pattern1,replacement1,corpus,fixed=TRUE)

但是,实际语料库中没有产生任何变化。我认为这是因为所有更改都在函数内进行,因此仅限于函数内。然后我尝试返回语料库,但 R无法识别语料库对象。

有人能指出我正确的方向吗?
谢谢。

最佳答案

尝试使用 mapply :

# original data
corpus <- c("this is a testOne","this is testTwo","this is testThree","this is testFour")
# make a copy to gsub into
corpus2 <- corpus

# set pattern/replacement
pattern1<- c("testOne","testTwo","testThree")
replacement1<- c("gameOne","gameTwo","gameThree")

corpus2 # before gsub
# run gsub on all of the patterns/replacements
x <- mapply(FUN= function(...) {
corpus2 <<- gsub(...,x=corpus2)},
pattern=pattern1, replacement=replacement1)
rm(x) # discard x; it's empty
corpus2 # after gsub

关于r - 向量化 Gsub 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041981/

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