r - 如何使用 gsub 在 for 循环中找到完全匹配?
问题描述
我只想替换数据数据框中的确切术语。在下面的示例中,我试图用 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)
}
推荐阅读
- java - 仅用于打印六位数字的 Java 随机类执行
- python - 如何在特定符号处拆分长文本文件并将拆分的文件并排粘贴
- reactjs - 在反应中设置和清除输入的默认值
- django - Django 2 在模板中调用 {% url %} 后添加 URL 参数
- python - Matplotlib 图仅显示函数何时结束
- python - 如何修复 JamspellServer 中的编码错误?
- r - 如何在使用 R 中的公式的函数中使用数据框中的变量?
- html - 为 Accodion Answers 填充 0 不起作用
- python - 从一行中的字符串更改列名
- java - 没有 PreparedStatements Criteria-API 的 SQL Escape