【问题标题】:Executing multiple pattern and replacements stored in a dataframe执行存储在数据框中的多个模式和替换
【发布时间】:2020-04-02 20:53:56
【问题描述】:

我有一个搜索和替换模式的数据框。变量pattern 包含我想查找的正则表达式,变量replacement 包含替换。

这基本上是一些文本分析的预处理脚本。我想对每个文档执行这些搜索和替换。但是现在我不知道如何在单个文档上执行每个搜索和替换。下面的代码显示了我的问题。

我错过了什么?

library(stringi)
library(purrr)
pattern<-c("good-bye[a-z]+|good-bye", "-like")
replacement<-c("goodbye", "xlike")

df<-data.frame(pattern, replacement, stringsAsFactors = F)
df
str(df)
doc<-c("hello let's say some good-byes you look-like someone.")

pmap(df, stri_replace_all_regex, str=doc, vectorize_all=T)

【问题讨论】:

    标签: r regex stringr


    【解决方案1】:

    我们可以使用reduce2 来更新 'pattern/replacement' 的每次迭代中的 'doc' 字符串

    library(purrr)
    library(stringi)
    reduce2(df$pattern, df$replacement,   stri_replace_all_regex, .init = doc)
    #[1] "my documents are really long and have some numbers in them like some number and some number also some letters like letter x and letter x that need to be replaced"
    

    【讨论】:

    • 好的,但在我的实际示例中,它们的长度不同。
    • @spindoctor 能否请您更新一个新示例。在这里,在您的代码中,您在每一行中都传递了doc,这就是它被复制的原因
    • 您好,我编辑了我认为更能反映我的挑战的示例。
    • 谢谢!这样就行了!我将假设将其应用于多个文档不会太难。但如果我有困难,我可能会回来!
    猜你喜欢
    • 2013-11-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    相关资源
    最近更新 更多