gpt4 book ai didi

r - 如何使用gsub在for循环中找到精确匹配?

转载 作者:行者123 更新时间:2023-12-01 08:11:18 25 4
gpt4 key购买 nike

我只想替换数据数据框中的确切术语。在下面的示例中,我试图用 xx 替换 java 一词,但它替换了 javascript 和 xxscript。

data$new
[1] "xxscript is a statically typed and xx py is a dynamically typed"
[2] "xx is a programming language"
data = data.frame("word"=c('python', 'java'), 
"description"=c('Javascript is a statically typed and Python py is a dynamically typed',
'java is a programming language'), stringsAsFactors = FALSE)

ll <- as.list(data$word)
data$new <- data$description
for(i in seq_len(nrow(data))) for(j in seq_along(ll)) {
data$new[i] <- gsub(ll[j], "xx", data$new[i],ignore.case = T)
}
data$new

我期望只替换确切的条款。

最佳答案

使用字边界 \\b

gsub("\\bjava\\b", "xx", c("my java is", "this javascript is"))
#[1] "my xx is" "this javascript is"

你可能想要
ll <- as.list(data$word)
data$new <- data$description
for(i in seq_len(nrow(data))) for(j in seq_along(ll)) {
data$new[i] <- gsub(paste0("\\b", ll[j], "\\b"), "xx", data$new[i],ignore.case = T)
}

关于r - 如何使用gsub在for循环中找到精确匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565040/

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