r - 文本替换——模式是一组字符串[r]

标签 r apply code-cleanup stringr text-manipulation

我在大型数据集中有一个字符串变量,我想根据一组字符串列表对其进行清理。前任。 pattern <- c("dog","cat") 但我的列表大约有 400 个元素。

vector_to_clean == a

black Dog
white dOG
doggie
black CAT
thatdamcat

然后我想应用一个函数来产生

dog
dog
dog
cat
cat

我尝试过 str_extract、grep、grepl 等。因为我一次可以根据一个字符串选择一种模式。我想我想要的是将 dapply 与这些文本清理功能之一一起使用。不幸的是,我被困住了。下面是我最近的尝试。感谢您的帮助!

new <- vector()

lapply(pattern, function(x){
  where<- grep(x,a,value = FALSE, ignore.case = TRUE)
  new[where]<-x
  })

最佳答案

我们将“pattern”向量粘贴在一起以创建一个字符串,在将其更改为小写后使用它从“vec1”中提取单词 (tolower(vec1))。

library(stringr)
str_extract(tolower(vec1), paste(pattern, collapse='|'))
#[1] "dog" "dog" "dog" "cat" "cat"

数据

pattern <- c("dog","cat") 
vec1 <- c('black Dog', 'white dOG', 'doggie','black CAT', 'thatdamcat')

关于r - 文本替换——模式是一组字符串[r],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312641/

相关文章:

r - 有没有 dplyr 方法来生成 AR(1) 时间序列?

R:根据两行中的连续值,填充第三行

javascript - 如何使用带有可选参数命名的Apply调用函数?

r - 如何获取所有少于特定水平数的因子变量的表格?

whitespace - Sublime Text 2 : Trim trailing white space on demand

r - 试图在 ggplot2 : Error in vpPathFromVector(names) 中使用 gglocator

升级到 Mac OSX 10.10 后,从 R 控制台运行系统命令无法找到已安装的程序

r - apply 函数中二元运算符的非数字参数

html - 同时从多个页面中删除未使用的 css(整个网站)

c# - 有没有更好的方法来过滤这个datagridview?